当Nginx日志中的$ request_time达到60s时,用nginx作为反向代理和UWSGI作为应用程序服务器获得



$ $ request_time在nginx日志中是nginx中首次收到的请求的时间,直到nginx将响应发送回客户端。

在我的nginx config中,当$ request_time到60s

时,请求由NGINX关闭,并标记为504 Gateway Timeout

我尝试使用以下位置上下文指令:

proxy_connect_timeout       300s;
proxy_send_timeout          300s;
proxy_read_timeout          300s;
send_timeout                300s;
uwsgi_read_timeout          300s;
uwsgi_send_timeout          300s;

,但仍面临同一问题。我缺少一些配置吗?

这是我的nginx.conf

的位置上下文
location / {
        set $uwsgi_script "wsgi";
        set $script_name "/";
        set $socket "uwsgi.sock";
        #client_max_body_size 1000m;
        keepalive_timeout  0;
        # host and port to uwsgi server
        uwsgi_pass   unix:///tmp/$socket;
        uwsgi_param  UWSGI_SCRIPT $uwsgi_script;
        uwsgi_param  SCRIPT_NAME $script_name;
        proxy_connect_timeout       300s;
        proxy_send_timeout          300s;
        proxy_read_timeout          300s;
        send_timeout                300s;
        uwsgi_pass_header Authorization;
        include /etc/nginx/uwsgi_params;
        #fix redirect issue to proxy port
        uwsgi_param SERVER_PORT 80;
        #set correct scheme
        uwsgi_param UWSGI_SCHEME $http_x_forwarded_proto;
        uwsgi_intercept_errors off;
        uwsgi_read_timeout          300s;
        uwsgi_send_timeout          300s;
    }

这不是因为nginx正在计时请求。这是在UWSGI级别的时机。

harakiri

UWSGI的一个功能,该功能逐渐流产为长期服务的工人。使用Harakiri家族配置。每个要求比Harakiri超时中指定的秒数更长的请求将被删除并回收相应的工作。

因此,您需要在UWSGI配置中设置Harakiri参数。有关更多详细信息,请参见下文

uwsgi请求超时在python

相关内容

  • 没有找到相关文章

最新更新