Maison  >  Article  >  Opération et maintenance  >  Configuration WebSocket du proxy inverse Nginx pour obtenir une communication en temps réel

Configuration WebSocket du proxy inverse Nginx pour obtenir une communication en temps réel

WBOY
WBOYoriginal
2023-07-04 17:37:362808parcourir

Configuration WebSocket du proxy inverse Nginx pour obtenir une communication en temps réel

WebSocket est un protocole réseau qui prend en charge la communication en duplex intégral. Il peut établir une connexion persistante entre le client et le serveur pour obtenir une communication en temps réel. Nginx est un serveur Web et un serveur proxy inverse hautes performances. Grâce à la configuration du proxy inverse de Nginx, vous pouvez transmettre les requêtes WebSocket au serveur principal, réalisant ainsi la fonction de communication en temps réel de WebSocket.

Voici un exemple de configuration du proxy inverse Nginx WebSocket :

  1. Installer Nginx
    Tout d'abord, nous devons installer Nginx sur le serveur. Vous pouvez utiliser des outils de gestion de packages (tels que apt, yum, etc.) pour l'installer. Une fois l'installation terminée, vous pouvez vérifier la version installée de Nginx en exécutant la commande "nginx -v".
  2. Configurez Nginx
    Configurez le proxy inverse de Nginx afin qu'il puisse transmettre les requêtes WebSocket au serveur backend. Ouvrez le fichier de configuration Nginx, généralement situé sous le chemin "/etc/nginx/nginx.conf" ou "/etc/nginx/conf.d/default.conf", et ajoutez la configuration suivante :
server {
    listen 80;
    server_name your_server_domain;

    location / {
        proxy_pass http://your_backend_server;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Parmi elles, your_server_domain est le nom de domaine ou l'adresse IP du serveur, your_backend_server est l'adresse et le port du serveur backend.

  1. Redémarrer Nginx
    Après avoir terminé la configuration, vous devez redémarrer le serveur Nginx pour que la configuration prenne effet. Nginx peut être redémarré à l'aide de la commande suivante :
sudo service nginx restart
  1. Backend Server
    Sur le serveur backend, vous devez écrire du code capable de gérer les requêtes WebSocket. Ici, nous prenons Node.js comme exemple pour créer un simple serveur WebSocket :
const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', ws => {
    console.log('New client connected');

    ws.on('message', message => {
        console.log(`Received message: ${message}`);
    });

    ws.on('close', () => {
        console.log('Client disconnected');
    });
});

Le code ci-dessus crée un serveur WebSocket, imprime un journal lorsque chaque nouveau client se connecte et imprime respectivement lorsque la connexion est reçue et fermée. .

  1. Tests
    Maintenant, nous pouvons utiliser les outils clients WebSocket (tels que les outils de développement de navigateur, Postman, etc.) pour tester la fonction de communication en temps réel de WebSocket. En envoyant une requête WebSocket au serveur Nginx, Nginx transmet la requête au serveur backend pour traitement.

Grâce aux étapes ci-dessus, nous avons configuré avec succès le proxy inverse de Nginx et implémenté la fonction de communication en temps réel de WebSocket.

Résumé : la configuration WebSocket du proxy inverse Nginx peut transmettre les requêtes WebSocket au serveur principal, rendant ainsi possible la communication en temps réel. Grâce aux étapes ci-dessus, nous pouvons facilement configurer Nginx pour prendre en charge WebSocket et écrire du code sur le serveur backend pour gérer les requêtes WebSocket. De cette façon, nous pouvons utiliser les hautes performances et la stabilité de Nginx pour réaliser des fonctions de communication en temps réel.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn