Django Gunicorn Nginx "connection reset by peer while reading response header"

标签 django nginx gunicorn

尝试使用gunicorn和nginx设置django,从nginx收到一些奇怪的错误:

2015/10/07 06:17:22 [error] 28817#0: *12 connect() to 
unix:/home/david/StockSearch/stocksearch/stocksearch.sock failed (111: Connection refused) while connecting to upstream, 
client:79.176.114.181, server: 128.199.36.78, request: "GET / HTTP/1.1", 
upstream: "http://unix:/home/david/StockSearch/stocksearch/stocksearch.sock:/",
host: "128.199.36.78" 2015/10/07 06:17:24 [error] 28817#0: *12 recv() 
failed (104: Connection reset by peer) while reading response header from upstream, 
client: 79.176.114.181, server: 128.199.36.78, request: "GET / HTTP/1.1", 
upstream: "http://unix:/home/david/StockSearch/stocksearch/stocksearch.sock:/", 
host: "128.199.36.78"

nginx 配置:

server {
    listen 80;
    server_name 128.199.36.78;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/david/StockSearch/stocksearch;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/david/StockSearch/stocksearch/stocksearch.sock;
    }
}

gunicorn配置:

start on runlevel [2345]
stop on runlevel [!2345]

respawn
setuid david
setgid www-data
chdir /home/david/StockSearch/stocksearch

exec /home/david/Env/ssenv/bin/gunicorn --workers 3 --bind unix:/home/david/StockSearch/stocksearch/stocksearch.sock stocksearch.wsgi:application

最佳答案

我对 nginx 和 Gunicorn 很陌生,但我认为你不能这样做:

proxy_pass http://unix:/home/david/StockSearch/stocksearch/stocksearch.sock;

这是通过 fastCGI 实现的,而不是通过 proxypass 实现的:

include fastcgi_params;
fastcgi_pass   unix:/var/run/php5-fpm.sock;
astcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_nam$

我可以告诉我如何在我的服务器中配置 nginx 和 Gunicorn,我希望我的配置有所帮助:

server {
        server_name XX.XX.XX.XX;
        access_log /webapps/Project/log/acces.log;
        error_log  /webapps/Project/log/error.log warn;
    location /static/ {
            root /webapps/Project;
    }

    location / {
            proxy_pass http://127.0.0.1:8001;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM N$
    }
}

然后我在本地计算机上启动 Gunicorn 服务器,如下所示:

gunicorn Project.wsgi:application --bind 127.0.0.1:8001

关于Django Gunicorn Nginx "connection reset by peer while reading response header",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32989701/

相关文章:

django - Gunicorn 同步 worker 生成进程

docker - FastAPI gunicorn 添加一个日志记录时间戳

python - Serializer.is_valid() 始终返回 False。 Serializer.errors 为空

django/gunicorn 应用重启

ruby-on-rails - Rails/Nginx 不提供 JS 和 CSS

html - 在 Angular 6 应用程序中使用静态 HTML 登陆页面模板

python - 是否可以创建一个临时 python 文件并导入该 .py 文件的类和属性

python - 为什么我使用 Tag.models.all() 后 Taggit (Django-Tag) 就无法工作

magento - 如何为 Magento 的多语言 SEO URL 重写 Nginx

DJango + nginx + gunicorn : how to stop caching