socket 서버가 따로 있고 중간 서버에서 소켓 서버와 클라이언트를 연결해줄 때,
다음 두 가지 방법이 있을 거라고 생각합니다.
- (클라이언트 - 중간 서버) , (중간 서버- 소켓 서버) 각각 소켓 연결 후 연동
- 클라이언트 → 중간서버 Request 후 중간 서버에서 소켓 서버 접속 정보를 클라이언트에게 넘겨줌 ( ip, auth 정보 )
1번의 경우는 소켓 서버를 따로 두는 의미가 없다고 생각하고
2번의 경우 보안적인 문제가 우려됩니다.
→ 어떤 점에서 보안에 대한 문제가 있을까요?
→ 그냥 socket 서버로 direct로 요청을 보내도 똑같지 않을까요?
다른 좋은 방법이 있을까요?
→ 중계서버를 두는 이유
→ nginx?
→ wss
→ http / https , ws wss
nginx ← 보안문제는 얘가 해결 (프록시에서 해결 ), white list 등을 두기도 하고, plugin 같은걸 설치해서 중간에 cookie 파싱을 하거나, Header를 추가하거나, 불필요한 header를 제거하거나, cdn 연동하거나
api server
socket server