我正在使用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 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
由于
答案 0 :(得分:1)
我找到的解决方案是这样的: 我为创建uwsgi worker而创建的uwsgi.ini文件没有指定套接字。所以我创建了另一个.ini文件并为它创建了一个套接字。我放入uwsgi_pass下的nginx conf文件中的那个套接字。这是django用于配置uwsgi的网页的链接。
https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/uwsgi/
答案 1 :(得分:1)
我遇到了同样的问题,但我以下列的方式将其搞定了。
如果您的项目中包含第三方应用,那么它应该安装在您的服务器上,就像南方是第三方应用。 考虑在您的settings.py文件中包含south,然后南也应该安装在您的服务器上。 如果该模块在这里考虑南,已经安装在服务器上然后尝试升级它。因为您可能在本地计算机上使用升级版本的模块,并且在服务器中安装了旧版本。
答案 2 :(得分:0)
在我的情况下,问题出在uwsgi配置上。我在应用程序的uwsgi conf中添加了buffer-size = 65535,并且在服务器上解决了错误502的问题