nginx Docker python应用程序找不到'PATH_INFO'环境变量

smtd7mpg  于 2023-03-01  发布在  Nginx
关注(0)|答案(1)|浏览(129)

我尝试使用Docker运行python后端,但是应用程序找不到PATH_INFO环境变量。虽然在另一台机器上运行良好,但差异是操作系统版本:先前为ubuntu 21.04,当前为ubuntu 22.04
此错误是由以下代码段引起的:

path = environ.get("PATH_INFO", "/").lower()

这里environ是包含所有env变量的字典
应用程序正在使用创建容器的docker-compose运行,其中ENTRYPOINT包括docker_entry文件:

import bjoern
from index import app
bjoern.run(app, '0.0.0.0', 80)

其中app

if __name__ == "__main__":
    wsgiref.handlers.CGIHandler().run(app)
piok6c0g

piok6c0g1#

PATH_INFO必须在脚本执行期间设置,它不是操作系统上可用的默认变量。您可以尝试在启动脚本之前打印出所有env变量,或者在脚本内部打印。

# bash
env

# python
import os
print(os.environ)

编辑:你可能会假设nginx为你的脚本设置PATH_INFO,就像它为PHP FPM设置的一样。

相关问题