【问题标题】:Django gunicorn nginx "connection reset by peer while reading response header"Django gunicorn nginx“读取响应标头时由对等方重置连接”
【发布时间】:2016-01-04 12:51:23
【问题描述】:

尝试使用 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

【问题讨论】:

    标签: django nginx gunicorn


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-12-22
      • 1970-01-01
      • 2020-01-03
      • 1970-01-01
      • 1970-01-01
      • 2018-02-21
      • 2022-11-04
      • 2017-04-01
      • 1970-01-01
      相关资源
      最近更新 更多