Tutoriel de configuration du proxy inverse Nginx Websocket pour obtenir une communication en temps réel
Présentation :
Cet article explique comment configurer un proxy inverse via Nginx pour obtenir une communication en temps réel avec Websocket. Websocket est un protocole de communication réseau moderne qui permet une communication en temps réel en duplex intégral entre les clients et les serveurs.
Contexte :
Dans le protocole HTTP traditionnel, le client envoie une requête au serveur et la connexion est fermée immédiatement après que le serveur a renvoyé une réponse, rendant la communication en temps réel impossible. Le protocole Websocket résout ce problème et permet une communication en temps réel entre le client et le serveur en établissant une connexion bidirectionnelle à long terme.
Étapes :
Tout d'abord, assurez-vous que Nginx est installé sur votre serveur. S'il n'est pas installé, veuillez utiliser l'outil de gestion de packages correspondant pour l'installer en fonction du système d'exploitation.
Ouvrez le fichier de configuration Nginx (généralement situé dans /etc/nginx/nginx.conf), recherchez la section serveur et ajoutez la configuration suivante :
server { listen 80; server_name your.domain.com; location /websocket { proxy_pass http://backend_server:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
Ici le "/websocket" demandé par le client "Path proxy vers le port 3000 du serveur backend. Dans le même temps, définissez les en-têtes Upgrade et Connection afin que Nginx prenne en charge les connexions Websocket.
Assurez-vous de remplacer « votre.domaine.com » par votre propre nom de domaine et « http://backend_server:3000 » par votre propre adresse et port de serveur backend.
Après avoir enregistré le fichier de configuration, exécutez la commande suivante pour redémarrer Nginx :
sudo service nginx restart
De cette façon, Nginx effectuera un proxy inverse en fonction de la configuration et transmettra la requête Websocket au serveur back-end .
Exemple de code :
Ce qui suit est un exemple de code pour un serveur Websocket simple, utilisant la bibliothèque Node.js et ws :
const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 3000 }); wss.on('connection', (ws) => { ws.on('message', (message) => { console.log('Received message: ', message); ws.send('Server received: ' + message); }); ws.on('close', () => { console.log('Connection closed'); }); });
Cet exemple de code crée un serveur Websocket et écoute le port 3000. Lorsqu'un client se connecte avec succès, reçu les messages sont imprimés et les réponses sont renvoyées au client.
Test :
Maintenant, vous pouvez créer une connexion Websocket dans le client, vous connecter au nom de domaine configuré par Nginx, et le chemin est "/websocket". Après avoir lancé un message, une réponse sera reçue du serveur.
Résumé :
Grâce à la configuration du proxy inverse de Nginx, nous pouvons facilement transmettre les requêtes Websocket au serveur backend pour établir une communication en temps réel. Cela facilite la création d’applications en temps réel avec une grande flexibilité et évolutivité.
N'oubliez pas d'assurer la sécurité et la fiabilité des serveurs Nginx et backend dans votre environnement de production, et de les régler et de les surveiller si nécessaire. J'espère que cet article vous aidera à comprendre et à utiliser Websocket de proxy inverse Nginx.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!