Sam*_*gal 25 tcp nginx websocket
我在用 nginx version: nginx/1.0.12
我的nginx.conf看起来像这样:
#user nobody;
worker_processes 1;
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
tcp {
upstream websockets {
## Play! WS location
server 127.0.0.1:9000;
check interval=3000 rise=2 fall=5 timeout=1000;
}
server {
listen 80;
listen 8000;
server_name socket.domain.com;
tcp_nodelay on;
proxy_pass websockets;
proxy_send_timeout 300;
}
# virtual hosting
#include /usr/local/nginx/vhosts/*;
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序似乎每75秒(或左右)丢弃websocket连接,我认为这是因为Nginx的默认keepalive配置.如何增加超时?
Wer*_*ght 50
我尝试了websocket_*_timeoutnginx 1.7.1不支持的(它给出了:未知指令).
然而,设置一个高的proxy_*_timeout作品:
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
Run Code Online (Sandbox Code Playgroud)
7d意味着7天,请参阅官方nginx配置参考
此外proxy_read_timeout 7d;,除非代理服务器后面的服务器非常慢,否则您可能只需设置通常重要的那个.
这些聪明的家伙有同样的问题并解决了它....
NGINX反向代理websockets并启用SSL(wss://)?
另外,这个模块的原始仓库中有来自模块作者的更多指令.
https://github.com/yaoweibin/nginx_tcp_proxy_module/issues/28
它基本上等于在server指令中添加websocket _*_ timeout指令:
server {
....
websocket_connect_timeout ######;
websocket_send_timeout #####;
websocket_read_timeout #####;
....
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41089 次 |
| 最近记录: |