Maison  >  Article  >  interface Web  >  Comment résoudre le problème de rapport d'erreurs du nœud sockjs

Comment résoudre le problème de rapport d'erreurs du nœud sockjs

藏色散人
藏色散人original
2021-12-08 11:18:315713parcourir

Solution à l'erreur signalée par sockjs-node : 1. Configurez le port 9097 sur nginx ; 2. Autorisez "/sockjs-node" à être correctement proxy vers le port réel de la machine.

Comment résoudre le problème de rapport d'erreurs du nœud sockjs

L'environnement d'exploitation de cet article : système Windows 7, nodejs version 10.16.2, ordinateur Dell G3.

Comment résoudre le problème de rapport d'erreurs du nœud sockjs ?

Solution d'erreur d'interface sockjs-node

Arrière-plan du projet

Lors de la reprise des projets angulaires d'autres personnes (vue.js peut également rencontrer ce problème), afin de résoudre le problème inter-domaines front-end Une fois nginx configuré, une fois le projet démarré, le serveur d'arrière-plan signale une erreur, comme le montre la figure ci-dessous :
Comment résoudre le problème de rapport derreurs du nœud sockjs

Emplacement du problème :

Allez en ligne pour rechercher la cause de l'erreur et trouvez ce sockjs-node est l'interface pour le chargement à chaud de nodejs pour le navigateur et la communication locale. La fonction de chargement à chaud échoue. Par conséquent, la raison de l'erreur est la suivante : cette interface de communication accède au port 9097 du proxy nginx au lieu du port 8082 où le service réel est démarré, la communication ne peut donc pas être effectuée.

Solution :

Configurez ce port 9097 sur nginx afin que /sockjs-node puisse normalement se connecter au port réel de la machine pour résoudre le problème.
Mesures spécifiques :
Ajouter la configuration nginx dans nginx

http {
    include       mime.types;
    default_type  application/octet-stream;
    map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
  }
 server {
        listen 9097;
        server_name localhost;

	location /sockjs-node {
            proxy_pass http://0.0.0.0:8082;
	    proxy_set_header Upgrade $http_upgrade;
	    proxy_set_header Connection $connection_upgrade;
        }
    }

Remarque : la chose la plus importante à propos de ce qui précède est d'ajouter les deux lignes suivantes à la configuration du proxy inverse. Les autres parties ne sont pas différentes du proxy inverse HTTP ordinaire.
roxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
L'élément clé ici est que la requête HTTP a l'en-tête suivant :
Upgrade : websocket
Connection : Upgrade
Ces deux champs indiquent que le protocole de mise à niveau du serveur de requêtes est WebSocket.

Conclusion

Dans les situations réelles, il peut y avoir de nombreuses raisons pour lesquelles le rapport d'erreurs /sockjs-node, y compris le proxy shadowsock, la configuration de nodejs, etc. Tant que vous comprenez la nature du problème et autorisez correctement ws à accéder au serveur local réel adresse.

Apprentissage recommandé : "Tutoriel vidéo Nodejs"

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