Django + Nginx + Gunicorn 部署随机出现 bad request 400

部署环境是 Ubuntu 16.04, 奇怪的是: 使用火狐时网页可以访问, 但总是随机出现 bad request 400, 如图所示:

图片

下面是我 Nginx 和 Django 的配置, 自查了多次没有问题:

Nginx 配置:

server { 
    listen 80;    
    server_name my_domain_name;  
                                                                                  
    location / {     
        proxy_pass http://localhost:9099;  
    }  
                                                                                  
    location /static/ {                        
        alias /path/to/static/;   
    }                                                                             
}

Django 配置:

DEBUG = False

ALLOWED_HOSTS = ['*']                                                                     

检查 nginx 错误日志, 每次访问都会有相同的报错:

failed (111: Connection refused) while connecting to upstream. upstream: "http://[::1]:port/

请问各位遇到过类似的情况么? 有没有什么解决方案?

阅读 4.9k
2 个回答

并没有问题,你的刷新操作实际上是在提交表单,但是表单内容没填就报400错误了,去看看http的状态码吧。

报错 failed while connecting to upstream. upstream: "http://[::1]:port/ 的原因是当 nginx 初始化连接时,会将 localhost 解析成 ipv6 地址,但是服务器没有对 ipv6 作相应的配置。所以需要禁用或者相应地配置 ipv6。比如:

location / {
    proxy_pass: http://127.0.0.1:port;
}

参考:1

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏