2017-04-14 1 views
0

노드 익스프레스 서버가 포트 3000에서 제공하는 REST API가 있습니다. socket.io를 사용하여 동일한 포트의 Express 서버에 연결된 websocket도 있습니다.웹 프로세스를 다른 프로세스로 전달하도록 nginx를 구성하는 방법

우리의 노드 서버를 확장하기 위해, 우리는 완전히 새로운 프로세스에 웹 소켓 서버를 분할하기로 결정했습니다, 그것은 (3002)

가 어떻게 전달의 nginx를 구성 할 새 포트에서 호스팅 한 모든 websocket 메시지를 포트 3002의 새 프로세스에 보내고 나머지는 포트 3000의 원래 REST API 서버로 전달합니다.

당신은 당신을 프록시의 위치 지시어를 구성
+0

에 웹 소켓 연결 URL을 설정해야 할 수 있습니다 당신이 시도 유무 : https://www.nginx.com/blog/websocket-nginx/ –

+0

@ErkiA 웹 소켓을 전달할 포트와 일반적인 http 요청을 전달할 포트를 어떻게 지정합니까? –

답변

1

가 웹 소켓 서버

location /websocket/ { 

    proxy_pass http://127.0.0.1:3002; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
} 

연결 클라이언트가 순수 웹 소켓 클라이언트 인 경우에, 당신은 ws://example.com/websocket/socket.io/?EIO=3&transport=websocket

관련 문제