【发布时间】:2018-07-17 12:01:18
【问题描述】:
我有一个 nginx 配置,它重定向到 Django 休息服务(通过 gunicorn)。
一切正常,但是当响应太大(响应时间超过 30 秒)时,我收到 503 服务不可用错误。 我确信这是因为这个问题,因为它在其他请求上正常工作,并且仅在响应太大(并从第三方 api 获取请求)的特定请求上花费太长时间。
下面是我的nginx配置:
server {
listen www.server.com:80;
server_name www.server.com;
client_max_body_size 200M;
keepalive_timeout 300;
location /server/ {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 120s;
proxy_read_timeout 300s;
client_max_body_size 200M;
}
location / {
root /var/www/html;
index index.html index.htm;
}
}
我确定问题出在 Nginx 而不是 gunicorn,因为如果我从机器内部进行 curl 我会得到响应。
谢谢,
【问题讨论】:
-
请发布您的NGINX error log 的输出。还要在
/var/log/syslog中发布这些错误之一的输出(如果有)以及您的 Gunicorn 应用程序的错误日志。什么是服务器设置以及您正在运行的浏览器是什么(假设这是一个网络请求)? -
这就是问题所在,两边都有 n 错误,并且从应用程序中它实际上正在返回结果(虽然晚了)
-
如果应用返回的是正确的结果,没有报错,但是很慢,是不是第三方API服务器响应太慢的问题?我不确定要解决的问题是什么。 NGINX 访问日志中有条目吗?您是说 NGINX 在其访问日志中显示 503 错误但在错误日志中没有任何内容?
-
可能是 django 应用程序失败了?似乎是这样。
-
@DanyY,看看我的回答是否有帮助