J'ai un problème douloureux. J'utilise Flask-SocketIO pour mettre à jour les quelques états du processus d'arrière-plan sur la page Web. Pour mon exemple, mon application est mise dans la machine A avec IP 170.8.8.8 surveillant le port 5000, et je mets nginx dans la machine B avec IP 170.8.8.9 surveillant également le port 5000. Donc je veux visiter IP: 5000 dans B qui saute IP: 5000 en A. ci-dessous est ma config nginx dans la machine B:page Web seulement peut obtenir le dernier état du processus d'arrière-plan en actualisant la page Web
upstream cuitccol.com{ #the name of server cluster
server 170.8.8.8:5000 max_fails=5 fail_timeout=50s; #for the first web server
}
server {
listen 5000;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location/{
proxy_pass http://cuitccol.com;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
Si je visite directement IP en A, la page web de mon navigateur peut constamment mises à jour l'état du processus d'arrière-plan. mais si je visite B où nginx est mis, la page Web ne peut pas constamment mettre à jour l'état, et je dois actualiser la page Web pour obtenir l'état suivant. et la console de mon navigateur a une erreur comme ci-dessous:
WebSocket connection to 'ws://170.8.8.9:5000/socket.io/?EIO=3&transport=websocket&sid=4a2ec29f7f834a0bb289b21f03c3e47c' failed: Error during WebSocket handshake: Unexpected response code: 200
Je ne sais pas où se passe mal. nginx ou flask-socketio. Pouvez-vous donner quelques conseils? merci beaucoup ~
Voir la documentation sur la configuration de nginx pour Flask-SocketIO: https://flask-socketio.readthedocs.io/en/latest/#using-nginx-as -a-websocket-reverse-proxy – Miguel
Ok, la documentation que vous spécifiez peut également résoudre mon problème. Merci beaucoup – AndrewGong