>  기사  >  웹 프론트엔드  >  sockjs-node 오류 보고 문제를 해결하는 방법

sockjs-node 오류 보고 문제를 해결하는 방법

藏色散人
藏色散人원래의
2021-12-08 11:18:315644검색

sockjs-node에서 보고된 오류에 대한 해결 방법: 1. nginx에서 포트 9097을 구성합니다. 2. "/sockjs-node"가 시스템의 실제 포트에 올바르게 프록시되도록 허용합니다.

sockjs-node 오류 보고 문제를 해결하는 방법

이 문서의 운영 환경: Windows 7 시스템, nodejs 버전 10.16.2, Dell G3 컴퓨터.

sockjs-node 오류 보고 문제를 해결하는 방법은 무엇입니까?

sockjs-node 인터페이스 오류 해결 방법

프로젝트 배경

다른 사람의 Angle 프로젝트를 인수할 때(vue.js에서도 이 문제가 발생할 수 있음) 크로스 도메인을 해결하기 위해 nginx가 구성되고 프로젝트가 시작된 후 배경 ws는 아래 그림과 같이 오류를 보고합니다.
sockjs-node 오류 보고 문제를 해결하는 방법

문제 위치:

온라인으로 이동하여 오류 원인을 검색하고 해당 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.