django+uwsgi+nginx 访问出错

2016-05-13 19:16:18 +08:00
 crazycabbage
报错如下:
2016/05/13 19:02:40 [error] 11057#0: *162 upstream prematurely closed connection while reading 
response header from upstream, client: xxx.xxx.xxx.xxx, server: xxx.xxx.xxx.xxx, request: "GET 
/poweredby.png HTTP/1.1", upstream: "uwsgi://127.0.0.1:8003", host: "xxx.xxx.xxx.xxx:8000", 
referrer: "http://xxx.xxx.xxx.xxx:8000/"
uwsgi 配置如下:
[uwsgi]
socket = 127.0.0.1:8003
touch-reload=/myblog/reload

processes = 2
threads = 4
vacuum = true
nginx 配置如下:
 server {
        listen       8000;
        server_name  xxx.xxx.xxx.xxx;
        root         /usr/share/nginx/html;
        access_log /logs/access.log;
        error_log /logs/error.log;

        charset     utf-8;

        # Load configuration files for the default server block.

        location / {
            include  /etc/nginx/uwsgi_params;
            uwsgi_pass  127.0.0.1:8003;
            client_max_body_size 35m;
            uwsgi_param UWSGI_SCRIPT myblog.wsgi;
            uwsgi_param UWSGI_CHDIR /myblog;
        }
        location /media  {
            alias /path/to/project/media;
        }

        location /static {
            alias /path/to/project/static;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
views.py 文件内容
#coding:utf-8
from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def index(request):
    return HttpResponse(u"Hello World!!")

搞了一天了,死活连不上, uwsgi8003 端口正常访问, nginx 代理 8000 端口连不上,端口已经开放,防火墙已经关闭,求解,感激不尽!

4743 次点击
所在节点    Django
13 条回复
peter999
2016-05-13 19:20:55 +08:00
selinux
peter999
2016-05-13 19:22:24 +08:00
nginx 监听的 ip 是不是写成本地了,保险的话写成 0.0.0.0
pc10201
2016-05-13 19:36:35 +08:00
先直接用 uwsgi 跑 django 试一下,没有问题再与 nginx 一起开
crazycabbage
2016-05-13 19:40:40 +08:00
@peter999 写的是 0.0.0.0
crazycabbage
2016-05-13 19:41:13 +08:00
@pc10201 uwsgi 跑是能成功的,端口是 8003 , nginx 端口是 8000
peter999
2016-05-13 19:43:36 +08:00
配置个静态目录看能访问到吗,还有目录和文件权限问题
peter999
2016-05-13 19:44:18 +08:00
如果你有路由器又是通过外网 ip 访问,还要检查下路由器上端口是不是被别的机器占用了
crazycabbage
2016-05-13 23:49:10 +08:00
@peter999 没有用路由器,端口换了也没用,根据错误日志是 upstream timed out (110: Connection timed out) while reading response header from upstream ,超时,谜一样
zwzmzd
2016-05-14 01:21:33 +08:00
如果直接用 uwsgi 作前端,会有什么问题么?长期裸跑 uwsgi 的路过
wizardoz
2016-05-14 15:47:03 +08:00
你有没有搞错? 8003 端口正常访问?
nginx 访问 uwsgi 用的是 wsgi 协议,浏览器访问 uwsgi 用的是 http 哦。
wizardoz
2016-05-14 15:53:59 +08:00
把配置文件中的
socket = 127.0.0.1:8003
改成
uwsgi-socket = 127.0.0.1:8003
试试

或者手动起 uwsgi ,再用 nginx 反代过来试试。
wizardoz
2016-05-14 15:55:27 +08:00
然后再把
uwsgi-socket = 127.0.0.1:8003
改成
uwsgi-socket = 0.0.0.0:8003
试试
crazycabbage
2016-05-15 01:01:32 +08:00
@wizardoz 谢谢了,已经解决了,估计是 uwsgi_param UWSGI_SCRIPT myblog.wsgi;uwsgi_param UWSGI_CHDIR /myblog;这个问题,我是用 supervisor 来管理的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/278504

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX