J'utilise nginx version: nginx/1.0.12
Mon nginx.conf ressemble à ceci:
#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/*;
}
Mon application semble abandonner les connexions Websocket toutes les 75 secondes (ou plus), ce qui, je pense, est dû à la configuration par défaut de Nginx. Comment augmenter le délai d'attente?
J'ai essayé le websocket_*_timeout
qui ne sont pas pris en charge sur nginx 1.7.1 (il donne: directive inconnue ).
Cependant, en définissant un proxy_*_timeout
travaux:
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
7d
signifie 7 jours, voir référence officielle de configuration nginx
De plus, il vous suffit probablement de définir le proxy_read_timeout 7d;
car c'est celui qui compte habituellement à moins que le serveur derrière le proxy soit très lent.
ces brillants gars ont eu le même problème et l'ont résolu ....
NGINX pour inverser les websockets proxy ET activer SSL (wss: //)?
ici aussi, dans le dépôt d'origine de ce module, il y a plus d'instructions de l'auteur du module.
https://github.com/yaoweibin/nginx_tcp_proxy_module/issues/28
cela revient essentiellement à ajouter des instructions de délai d'attente websocket _ * _ dans la directive serveur:
server {
....
websocket_connect_timeout ######;
websocket_send_timeout #####;
websocket_read_timeout #####;
....
}