Maison  >  Article  >  Opération et maintenance  >  Tutoriel de configuration du proxy inverse Nginx Websocket pour obtenir une communication en temps réel

Tutoriel de configuration du proxy inverse Nginx Websocket pour obtenir une communication en temps réel

WBOY
WBOYoriginal
2023-07-04 08:19:361735parcourir

Tutoriel de configuration du proxy inverse Nginx pour obtenir une communication en temps réel

Websocket est un protocole basé sur de longues connexions qui peuvent réaliser une communication en temps réel. Combiné avec la fonction de proxy inverse Nginx, il peut mieux gérer et distribuer les requêtes Websocket. Cet article explique comment configurer le proxy inverse Nginx pour implémenter la communication en temps réel Websocket.

  1. Confirmez que Nginx est installé
    Tout d'abord, assurez-vous que Nginx est installé sur le serveur. S'il n'est pas installé, vous pouvez utiliser la commande suivante pour l'installer :

    sudo apt-get update
    sudo apt-get install nginx
  2. Modifiez le fichier de configuration Nginx
    Utilisez un éditeur de texte pour ouvrir le fichier de configuration Nginx, généralement situé dans /etc/nginx/nginx .conf ou /etc/nginx/conf.d/default.conf. Modifiez selon l'exemple suivant : /etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf。按照下面的示例进行修改:

    server {
    listen 80;
    server_name yourdomain.com;
    
    location /websocket {
       proxy_pass http://backend;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "Upgrade";
    }
    }

    在上述配置中,我们定义了一个名为 websocket 的位置(location),并将请求代理到名为 backend 的后端服务器。注意 yourdomain.combackend 应该替换为你自己的域名和后端服务器地址。

此外,我们还设置了两个代理请求头 Upgrade 和 Connection,这是为了使 Nginx 能够正确处理 Websocket 连接。

  1. 重启 Nginx
    完成配置文件的修改后,保存并退出文本编辑器。然后使用以下命令重启 Nginx:

    sudo service nginx restart
  2. 测试Websocket连接
    现在你可以使用任何支持 Websocket 协议的客户端应用程序(如浏览器或终端工具)来测试你的 Websocket 服务器。假设你的域名是 yourdomain.com
    const socket = new WebSocket('ws://yourdomain.com/websocket');
    
    socket.onopen = () => {
       console.log('连接已建立');
    };
    
    socket.onmessage = (event) => {
       console.log('收到消息:', event.data);
    };
    
    socket.onclose = () => {
       console.log('连接已关闭');
    };
    
    socket.onerror = (error) => {
       console.error('发生错误:', error);
    };
  3. Dans la configuration ci-dessus, nous définissons un emplacement nommé websocket et transmettons la requête à un emplacement nommé serveur backend backend. Notez que votredomaine.com et backend doivent être remplacés par votre propre nom de domaine et l'adresse de votre serveur backend.

De plus, nous avons également défini deux en-têtes de requête proxy, Mise à niveau et Connexion, pour permettre à Nginx de gérer correctement les connexions Websocket.

    🎜Redémarrez Nginx🎜Après avoir terminé la modification du fichier de configuration, enregistrez et quittez l'éditeur de texte. Redémarrez ensuite Nginx à l'aide de la commande suivante : 🎜rrreee🎜🎜 Test Websocket Connection🎜 Vous pouvez désormais utiliser n'importe quelle application client prenant en charge le protocole Websocket (comme un navigateur ou un outil de terminal) pour tester votre serveur Websocket. En supposant que votre nom de domaine est votredomaine.com, utilisez le code suivant pour tester : 🎜🎜rrreee🎜Collez le code ci-dessus dans un environnement compatible JavaScript pour l'exécuter, tel que la console des outils de développement du navigateur, ou Exécutez en utilisant Node.js. Si vous pouvez voir le journal de connexion établie, votre configuration Nginx et votre serveur Websocket fonctionnent correctement. 🎜🎜Résumé🎜Grâce à la configuration du proxy inverse Nginx, nous pouvons transmettre les requêtes Websocket au serveur backend pour obtenir une fonctionnalité de communication en temps réel. Cet article explique comment configurer Nginx puis utiliser le code JavaScript pour tester les connexions Websocket. J'espère que cet article vous aidera à comprendre et à appliquer le 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!

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