Server
[nginx] ssl 연동하여 배포한 서버 socket 연결하기
hyun_ji
2023. 1. 4. 16:08
반응형
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