6

我正在使用 uWSGI 和 Nginx 为我的 Django 网站(1.4 版本)提供服务器。我的文件结构是 django_mysite/django_mysite/ 其中有一个 wsgi.py 文件。
我不断收到 502 Bad gateway 错误。我有其他运行 nginx 的服务器,它们工作正常。

我的 nginx 配置:

server {
  listen      80;
  server_name beta.example.com;

  keepalive_timeout 70;

  root /path/to/django_mysite/django_mysite;


  location root {
        root   html;
        uwsgi_pass   localhost:9000;
        uwsgi_param UWSGI_SCRIPT django_wsgi;
        include        uwsgi_params;
    }

  location / {
        uwsgi_pass   localhost:9000;
        include        uwsgi_params;
        uwsgi_param SCRIPT_NAME /django;
        uwsgi_param UWSGI_SCRIPT django_wsgi;
        uwsgi_modifier1 30;
    }
}

我的 wsgi.py 文件:import sys import os

sys.path.append('/path/to/django_mysite/')
 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_mysite.settings")

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

日志中的错误是:

*3 recv() failed (104: Connection reset by peer) while reading response header from upstream

谢谢

4

3 回答 3

1

我找到的解决方案是:我为创建 uwsgi 工作人员创建的 uwsgi.ini 文件没有指定套接字。所以我制作了另一个 .ini 文件并为它制作了一个套接字。我放置在 uwsgi_pass 下的 nginx conf 文件中的同一个套接字。这是 django 用于配置 uwsgi 的网页的链接。

https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/uwsgi/

于 2012-07-17T20:25:43.830 回答
1

我遇到了同样的问题,但我通过以下方式解决了这个问题。

如果您的项目中包含第三方应用程序,那么它应该安装在您的服务器上,就像南方是第三方应用程序一样。考虑 south 包含在您的 settings.py 文件中,那么 south 也应该安装在您的服务器上。如果该模块在这里考虑南方,已经安装在服务器上,然后尝试升级它。因为您可能在本地机器上使用升级版本的模块,而旧版本安装在服务器中。

于 2014-04-22T10:50:20.987 回答
0

就我而言,问题出在 uwsgi 配置上。我在我的应用程序的 uwsgi conf 中添加了 buffer-size = 65535 并且错误 502 的问题在服务器上得到了解决

于 2019-01-23T13:05:31.457 回答