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.
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
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 :
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.
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.
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!