我在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的访问日志所示,它从未收到过有问题的请求。
1条答案
按热度按时间taor4pac1#
如果你得到的是默认的nginx页面,你需要记住流程。Nginx -> gunicorn -> django。因此,如果你有一个与nginx相关的不同渲染页面,问题可能在于nginx而不是gunicorn。我只需要找到指向nginx默认页面的conf服务器定义,并将其注解掉或完全删除。您现在很可能有重叠的服务器定义。