sockjs-node에서 보고된 오류에 대한 해결 방법: 1. nginx에서 포트 9097을 구성합니다. 2. "/sockjs-node"가 시스템의 실제 포트에 올바르게 프록시되도록 허용합니다.
이 문서의 운영 환경: Windows 7 시스템, nodejs 버전 10.16.2, Dell G3 컴퓨터.
sockjs-node 오류 보고 문제를 해결하는 방법은 무엇입니까?
sockjs-node 인터페이스 오류 해결 방법
다른 사람의 Angle 프로젝트를 인수할 때(vue.js에서도 이 문제가 발생할 수 있음) 크로스 도메인을 해결하기 위해 nginx가 구성되고 프로젝트가 시작된 후 배경 ws는 아래 그림과 같이 오류를 보고합니다.
온라인으로 이동하여 오류 원인을 검색하고 해당 sockjs-node는 브라우저 및 로컬 통신을 위한 nodejs 핫 로딩을 위한 인터페이스입니다. 이 핫 로딩 기능은 실패합니다. 따라서 오류가 발생하는 이유는 이 통신 인터페이스가 실제 서비스가 시작되는 8082 포트 대신 nginx 프록시의 9097 포트에 액세스하므로 통신을 수행할 수 없기 때문입니다.
/sockjs-node가 일반적으로 문제를 해결하기 위해 시스템의 실제 포트로 프록시될 수 있도록 nginx에서 이 9097 포트를 구성하십시오.
구체적인 조치:
nginx에 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; } }
참고: 위에서 가장 중요한 것은 역방향 프록시 구성에 다음 두 줄을 추가하는 것입니다. 다른 부분은 일반 HTTP 역방향 프록시와 다르지 않습니다.
roxy_set_header 업그레이드 $http_upgrade;
proxy_set_header 연결 $connection_upgrade;
여기서 중요한 부분은 HTTP 요청에 다음 헤더가 있다는 것입니다.
업그레이드: websocket
연결: 업그레이드
이 두 필드는 요청 서버 업그레이드 프로토콜이 WebSocket임을 나타냅니다.
실제 상황에서는 Shadowsock 프록시, nodejs 구성 등을 포함하여 /sockjs-node 오류 보고에 대한 여러 가지 이유가 있을 수 있습니다. 문제의 본질을 이해하고 ws가 실제 로컬에 액세스하도록 올바르게 허용하는 한 주소.
추천 학습: "nodejs 비디오 튜토리얼"
위 내용은 sockjs-node 오류 보고 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!