Nginx + Gunicorn + Django:每3次显示Nginx默认页面

xtupzzrd  于 2023-08-03  发布在  Nginx
关注(0)|答案(1)|浏览(144)

我在Gunicorn 20.1.0(:8000)上有一个Django应用程序,在Debian 11.2上使用Nginx 1.18.0作为主服务器(link to the website):
Nginx <-:8000->Gunicorn <->Django
服务器每三次显示一次Nginx默认模板(第一次请求,第4次,第7次,第10次,等等)。下面是Nginx访问日志的片段(注意发送的字节中的模式):

89.xx.xxx.xx - - [05/Jul/2023:11:37:23 -0400] "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
89.xx.xxx.xx - - [05/Jul/2023:12:01:51 -0400] "GET / HTTP/1.1" 200 6723 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
89.xx.xxx.xx - - [05/Jul/2023:12:01:52 -0400] "GET / HTTP/1.1" 200 6723 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
89.xx.xxx.xx - - [05/Jul/2023:12:01:53 -0400] "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
89.xx.xxx.xx - - [05/Jul/2023:12:01:54 -0400] "GET / HTTP/1.1" 200 6723 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
89.xx.xxx.xx - - [05/Jul/2023:12:01:54 -0400] "GET / HTTP/1.1" 200 6723 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
...

字符串
Nginx或Gunicorn error.log文件中没有错误(**服务器和站点特定日志都是空白的。**以前我有一些错误,所以我确信日志记录没有缺陷)。其他请求(第二、第三、第五......)都得到了正确的响应,并且符合预期(没有任何问题)。
我知道这一定是Gunicorn没有回应,但我不知道我应该在哪里找出解决方案。
到目前为止,我尝试增加Gunicorn(timeout)和Nginx的超时限制(服务器响应非常快)。应该注意的是,服务器有大量的免费资源。我还用--log-level=debug运行了Gunicorn,但error.log没有显示任何相关内容。
下面是Gunicorn的配置文件:

"""Gunicorn *development* config file"""
timeout = 120
wsgi_app = "project.wsgi:application"
loglevel = "debug"
workers = 2
bind = "0.0.0.0:8000"
reload = True
accesslog = errorlog = "/var/log/gunicorn/dev.log"
capture_output = True
pidfile = "/var/run/gunicorn/dev.pid"
daemon = True


Nginx服务器:

server_tokens               off;
access_log                  /var/log/nginx/e-damac.ir.log;
error_log                   /var/log/nginx/e-damac.ir.error.log;

server {
  server_name               e-damac.ir www.e-damac.ir;
  listen                    80;
  location / {
    proxy_pass              http://localhost:8000;
    proxy_set_header        Host $host;
  }
  location /static {
    autoindex on;
    alias /var/www/html/e-damac.ir/static/;
  }
}


我没有编辑nginx.conf文件,它是在原来的条件。
任何建议或诊断方法将不胜感激。先谢谢你。

**更新:**正如gunicorn的访问日志所示,它从未收到过有问题的请求。

taor4pac

taor4pac1#

如果你得到的是默认的nginx页面,你需要记住流程。Nginx -> gunicorn -> django。因此,如果你有一个与nginx相关的不同渲染页面,问题可能在于nginx而不是gunicorn。我只需要找到指向nginx默认页面的conf服务器定义,并将其注解掉或完全删除。您现在很可能有重叠的服务器定义。

相关问题