반응형
SMALL
서버에 ssl 연동하여 배포하고 소켓에서 https로 통신을 시도하면 에러가 납니다.
소켓 요청에 대한 프록시 설정을 따로 해주지 않았기 때문입니다.
소켓 공식문서를 보시면 https://socket.io/docs/v3/reverse-proxy/#nginx
nginx 연동을 어떻게 해야하는지 나와있습니다.
location ^~ /socket {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://localhost:3000; // 포트번호를 소켓을 배포한 서버의 포트로 작성합니다.
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
위처럼 작성해주시고,
클라이언트 소켓 커넥트에 ssl이 입혀진 배포한 통신주소를 입력하면 문제없이 소켓연결이 됩니다.
const socket = socketio.connect("/"); // ssl이 입혀진 배포한 통신주소
만약에 여러개의 서버에서 소켓 여러개를 돌린다면 아래의 양식으로 패스를 지정해주면 됩니다.
const socket = socketio.connect("/", { path: "/test/socket.io" });
location /test/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://localhost:3000/socket.io/; // 포트번호를 소켓을 배포한 서버의 포트로 작성합니다.
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
반응형
LIST
'Server' 카테고리의 다른 글
Linux 환경에서 서버작업 순서(Docker 설치하기) (0) | 2021.09.30 |
---|---|
Linux 환경에서 Nginx 설정하기 (0) | 2021.09.30 |
Docker를 이용하여 Nginx 로드밸런싱하기 (0) | 2021.08.16 |