


Configuration WebSocket du proxy inverse Nginx pour obtenir une communication instantanée
Configuration WebSocket du proxy inverse Nginx pour obtenir une communication instantanée
WebSocket est un protocole de communication basé sur le protocole TCP. Il établit une connexion bidirectionnelle à long terme entre le navigateur et le serveur, réalisant la fonction de communication en temps réel. En tant que serveur Web hautes performances, Nginx peut également prendre en charge WebSocket via un proxy inverse et obtenir un meilleur équilibrage de charge et un traitement à haute concurrence.
Tout d'abord, pour configurer le proxy inverse dans Nginx, vous devez ajouter une configuration location
dans le fichier nginx.conf
. Supposons que le serveur WebSocket s'exécute sur le port local 8000 et que nous le renvoyons au port 3000 du serveur Nginx. La configuration spécifique est la suivante : nginx.conf
文件中添加一段location
的配置。假设WebSocket服务器运行在本地的8000端口上,我们将其反向代理到Nginx服务器的3000端口上,具体配置如下:
server { listen 3000; server_name your.server.name; location / { proxy_pass http://localhost:8000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } }
在上述配置中,proxy_pass
指令指定了要反向代理的WebSocket服务器的地址和端口。proxy_http_version
指定了反向代理使用的HTTP版本,这里设置为1.1。proxy_set_header Upgrade
和proxy_set_header Connection
指令告诉Nginx在转发WebSocket请求时不要修改Upgrade
和Connection
请求头,以保证WebSocket连接的正常建立。
需要注意的是,如果WebSocket服务器运行在HTTPS协议下,需要在配置中添加proxy_set_header X-Forwarded-Proto $scheme;
指令,以告诉服务器使用HTTPS协议。
完成以上配置后,重新加载Nginx配置文件使其生效:sudo nginx -s reload
。
接下来,我们可以使用WebSocket客户端来测试反向代理配置是否成功。以JavaScript为例,代码如下:
var socket = new WebSocket('ws://your.server.name/'); socket.onopen = function() { console.log('WebSocket连接已建立'); }; socket.onmessage = function(event) { console.log('收到消息:' + event.data); }; socket.onclose = function() { console.log('WebSocket连接已关闭'); };
在上述示例中,我们创建了一个WebSocket对象,并指定了要连接的地址为Nginx服务器的地址。在onopen
、onmessage
和onclose
rrreee
proxy_passLa directive > spécifie le proxy inverse. L'adresse et le port du serveur WebSocket du proxy. <code>proxy_http_version
spécifie la version HTTP utilisée par le proxy inverse, ici elle est définie sur 1.1. Les directives proxy_set_header Upgrade
et proxy_set_header Connection
indiquent à Nginx de ne pas modifier les en-têtes de requête Upgrade
et Connection
lors du transfert des requêtes WebSocket. . Assurer l'établissement normal de la connexion WebSocket. Il est à noter que si le serveur WebSocket fonctionne sous le protocole HTTPS, la directive proxy_set_header X-Forwarded-Proto $scheme;
doit être ajoutée à la configuration pour indiquer au serveur d'utiliser le HTTPS. protocole. Après avoir terminé la configuration ci-dessus, rechargez le fichier de configuration Nginx pour le rendre efficace : sudo nginx -s reload
. 🎜🎜Ensuite, nous pouvons utiliser le client WebSocket pour tester si la configuration du proxy inverse a réussi. En prenant JavaScript comme exemple, le code est le suivant : 🎜rrreee🎜Dans l'exemple ci-dessus, nous avons créé un objet WebSocket et spécifié l'adresse à connecter comme adresse du serveur Nginx. Dans les fonctions de rappel onopen
, onmessage
et onclose
, nous pouvons gérer les événements de connexion WebSocket réussie, de message reçu et de fermeture de connexion. 🎜🎜Grâce à la configuration et aux exemples de code ci-dessus, nous pouvons implémenter WebSocket de proxy inverse sur Nginx et réaliser la fonction de communication instantanée. Grâce aux hautes performances et au mécanisme d'équilibrage de charge de Nginx, nous pouvons fournir des services stables et fiables pour les applications WebSocket et gérer un grand nombre de connexions simultanées. Dans le même temps, comme Nginx dispose d'outils d'exploitation, de maintenance et de surveillance matures, nous pouvons facilement effectuer l'optimisation des performances et le dépannage des applications WebSocket. 🎜🎜Pour résumer, Nginx est un excellent serveur Web Grâce à la configuration du proxy inverse, nous pouvons facilement prendre en charge WebSocket et fournir des services de messagerie instantanée hautes performances. Pour les applications Web qui doivent implémenter des fonctions de messagerie instantanée, la configuration du proxy inverse Nginx est une solution qui mérite d'être explorée et utilisée. 🎜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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment confirmer si Nginx est démarré: 1. Utilisez la ligne de commande: SystemCTl Status Nginx (Linux / Unix), netStat -ano | Findstr 80 (Windows); 2. Vérifiez si le port 80 est ouvert; 3. Vérifiez le message de démarrage NGINX dans le journal système; 4. Utilisez des outils tiers, tels que Nagios, Zabbix et Icinga.

Comment configurer Nginx dans Windows? Installez Nginx et créez une configuration d'hôte virtuelle. Modifiez le fichier de configuration principale et incluez la configuration de l'hôte virtuel. Démarrer ou recharger nginx. Testez la configuration et affichez le site Web. Activer sélectivement SSL et configurer les certificats SSL. Définissez sélectivement le pare-feu pour permettre le trafic Port 80 et 443.

Dans Linux, utilisez la commande suivante pour vérifier si Nginx est démarré: SystemCTL Status Nginx Juges Basé sur la sortie de la commande: si "Active: Active (Running)" s'affiche, Nginx est démarré. Si "Active: Inactive (Dead)" est affiché, Nginx est arrêté.

Étapes pour démarrer Nginx dans Linux: Vérifiez si Nginx est installé. Utilisez SystemCTL Start Nginx pour démarrer le service NGINX. Utilisez SystemCTL Activer Nginx pour activer le démarrage automatique de Nginx au démarrage du système. Utilisez SystemCTL Status Nginx pour vérifier que le démarrage est réussi. Visitez http: // localhost dans un navigateur Web pour afficher la page de bienvenue par défaut.

Il existe deux façons de résoudre le problème du domaine transversal NGINX: modifiez les en-têtes de réponse transversale: ajoutez des directives pour autoriser les demandes de domaine croisé, spécifier des méthodes et des en-têtes autorisés et définir le temps du cache. Utilisez le module CORS: Activez les modules et configurez les règles CORS pour permettre des demandes, des méthodes, des en-têtes et du temps de cache.

Les méthodes pour afficher l'état en cours d'exécution de Nginx sont: utilisez la commande PS pour afficher l'état du processus; Afficher le fichier de configuration Nginx /etc/nginx/nginx.conf; Utilisez le module d'état NGINX pour activer le point de terminaison d'état; Utilisez des outils de surveillance tels que Prometheus, Zabbix ou Nagios.

Le démarrage d'un serveur Nginx nécessite différentes étapes en fonction des différents systèmes d'exploitation: Système Linux / Unix: Installez le package NGINX (par exemple, en utilisant Apt-Get ou Yum). Utilisez SystemCTL pour démarrer un service NGINX (par exemple, sudo systemctl start nginx). Système Windows: téléchargez et installez les fichiers binaires Windows. Démarrer Nginx à l'aide de l'exécutable Nginx.exe (par exemple, nginx.exe -c conf \ nginx.conf). Peu importe le système d'exploitation que vous utilisez, vous pouvez accéder au serveur IP

Réponse à la question: 304 Erreur non modifiée indique que le navigateur a mis en cache la dernière version de ressource de la demande du client. Solution: 1. Effacer le cache du navigateur; 2. Désactiver le cache du navigateur; 3. Configurer Nginx pour permettre le cache client; 4. Vérifier les autorisations du fichier; 5. Vérifier le hachage du fichier; 6. Désactiver le CDN ou le cache proxy inversé; 7. Redémarrez Nginx.
