nginx django 502 bad gateway

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文件: 导入sys模块 导入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

谢谢


连接到unix:///tmp/uwsgi.sock的connect()失败(2:没有这个文件或目录),在连接到上游时。 - Christopher H
3个回答

1
我曾经遇到过同样的问题,但是我通过以下方式解决了它。
如果你的项目中包含第三方应用程序,那么它也应该安装在你的服务器上,例如South就是第三方应用程序。考虑到South已经被包含在你的settings.py文件中,那么在你的服务器上也应该安装South。如果这个模块——在这里指的是South——已经安装在服务器上,那么尝试升级它,因为有可能你正在本地使用升级后的模块版本,而服务器上安装的是旧版本。

1
我找到的解决方案是: 我创建的用于创建uwsgi工作进程的uwsgi.ini文件没有指定套接字。因此,我又创建了另一个.ini文件,并为其创建了一个套接字。然后,我将同样的套接字放入nginx配置文件中的uwsgi_pass下。这里是Django网页上关于配置uwsgi的链接。

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


1
在我的情况下,问题出在uwsgi配置上。我在应用程序的uwsgi配置中添加了buffer-size = 65535,服务器上的502错误问题得到了解决。

2
将来参考:无论如何,此答案应提交为注释。欢迎来到stackoverflow。 - DDS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接