我正在尝试将模块添加到现有的 Django 项目,但完成后出现 502 错误。服务器运行的是 Ubuntu。我认为这与应用程序代码无关,因为我在 django 开发服务器上运行它。当我从 settings.py 中取出应用程序的名称并重新启动 gunicorn 时,它就消失了。
以下是日志的一部分
2011/07/15 01:24:45 [error] 16136#0: *75593 connect() failed (111: Connection refused) while connecting to upstream, client: 24.17.8.152, server: staging.site.org, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8020/", host: "staging.site.org"
这是 nginx 配置文件。 Nginx 配置文件
我不确定还需要什么其他信息。不确定 gunicorn 日志位于何处。我的服务器管理技能有点欠缺。我应该做哪些事情来找出问题的根源。
答案1
可能是模块中存在错误,导致 django 应用程序完全失败。检查它是否正在运行。
答案2
您是如何安装新模块的?如果您使用 pip、apt-get 等将其安装在开发机器上,请确保在您的服务器上执行相同的操作。
答案3
我不知道这是否适用于您,但我在使用 nginx 和 Passenger 时遇到了类似的问题,我没有将我的 django 根目录(包含 manage.py/settings.py/etc 的目录)包含在工作路径中。我没有使用过 gunicorn,但您是否可能需要sys.path.append
在 gunicorn 配置中的某个位置添加该目录?
答案4
Connection refused
很明显。这意味着您的后端(在本例中为 gunicorn)没有在您在 nginx 配置中指定的端口(在本例中为 8020)上运行。
这里发生了以下两种情况之一。要么:
- gunicorn 在不同的端口上运行,或者
- gunicorn 没有运行。
如果您确定这是正确的端口,那么尝试启动 gunicorn。