uWSGI在Python中请求超时

Jua*_*oto 37 python uwsgi

试图在uWSGI中设置请求的超时,我不确定设置是否正确.似乎有多个超时选项(套接字,接口等),并且不容易明白要配置哪个设置或在哪里设置它.

我正在寻找的行为是将请求的时间延长到REST应用程序的资源层.

Tom*_*art 58

您正在寻找harakiri参数 - 如果请求的时间超过指定的harakiri时间(以秒为单位),请求将被删除并且相应的工作程序将被回收.

对于独立的uwsgi(ini配置):

[uwsgi]
http = 0.0.0.0:80
harakiri = 30
...
Run Code Online (Sandbox Code Playgroud)

如果你在uwsgi之前有nginx代理,你还需要增加超时:

  location / {
    proxy_pass http://my_uwsgi_upstream;
    proxy_read_timeout 30s;
    proxy_send_timeout 30s;
  }
Run Code Online (Sandbox Code Playgroud)

如果您希望(出于某些奇怪的原因)超过60秒的超时,您可能会考虑通过uwsgi协议进行通信.配置与nginx网站非常相似:

location / {
    uwsgi_read_timeout 120s;
    uwsgi_send_timeout 120s;
    uwsgi_pass  my_upstream;
    include     uwsgi_params;
}
Run Code Online (Sandbox Code Playgroud)

uwsgi:

[uwsgi]
socket = 0.0.0.0:80
protocol = uwsgi
harakiri = 120
...
Run Code Online (Sandbox Code Playgroud)


iur*_*rii 17

设置http-timeout对我有用.我有http = :8080,所以我假设你使用文件系统套接字,你必须使用socket-timeout.