1 http { 2 server { 3 location / { 4 root html; 5 index index.html index.htm; 6 proxy_pass http://sre_backend; 7 proxy_http_version 1.1; 8 proxy_connect_timeout 5s; 9 proxy_read_timeout 60s; 10 proxy_send_timeout 30s; 11 proxy_set_header Upgrade $http_upgrade; 12 proxy_set_header Connection "$connection_upgrade"; 13 } 14 } 15 }
「解释上面超时配置的」
「proxy_read_timeout参数」默认值60秒,该指令设置与代理服务器的读超时时间。它决定了nginx会等待多长时间来获得请求的响应。这个时间不是获得整个response的时间,而是两次reading操作的时间。即是服务器对你等待最大的时间,也就是说当你使用nginx转发webSocket的时候,如果60秒内没有通讯,依然是会断开的,所以,你可以按照你的需求来设定。比如说,我设置了5分钟,那么如果我5分钟内有通讯,或者5分钟内有做心跳的话,是可以保持连接不中断的。所以这个时间是看你的业务需求来调整时间长短的。
「proxy_send_timeout参数」默认值 60s,设置了发送请求给upstream服务器的超时时间。超时设置不是为了整个发送期间,而是在两次write操作期间。如果超时后,upstream没有收到新的数据,nginx会关闭连接。