2012-07-17 113 views
6

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

我的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 

感谢

+0

日志说什么? – 2012-07-17 19:17:04

+0

* 42连接()到unix:///tmp/uwsgi.sock失败(2:没有这样的文件或目录),同时连接到上游 – 2012-07-17 19:20:44

回答

1

我找到的解决方案是: 我为创建uwsgi workers而创建的uwsgi.ini文件没有指定套接字。于是我制作了另一个.ini文件并为它创建了一个套接字。我将这个套接字放入uwsgi_pass下的nginx conf文件中。这是一个链接到Django的网页,用于配置uwsgi。

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

1

我面临同样的问题,但我figered它在以下方式。

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