WebSocket은 HTTP와는 달리 전이중 통신 채널을 제공하는 프로토콜이다. HTTP와는 전혀 다른 프로토콜이지만 HTTP로 부터 유도되기 때문에, HTTP와 쎄트로 취급하는 경우가 많기는 하다. WebSocket을 이용하면 서버&클라이언트가 (마치 소켓 프로그램처럼) 자유롭게 메시지를 주고 받을 수 있다.
NginX를 이용해서 WS를 프락시하는 방법을 살펴보려 한다.
Origin 헤더가 보일 것이다. Origin 헤더는 요청이 이루어진 위치를 나타낸다. 여기에는 경로정보가 포함되지 않으며 오직 서버이름만 표시된다. 이 헤더는 CSRF(Cross-Site Request Forgery)취약점을 완화하기 위해서 사용한다. go언어의 gorilla 툴킷이 Orgin이 포함된 경우 CSRF 취약점에 노출될 수 있다고 판단해서 연결을 거부한 거다. "proxy_set_header"로 Orign 헤더를 빈 문자열로 설정하면 된다.
Contents
WebSocket
테스트용 WS 애플리케이션 준비
Recent Posts
Archive Posts
Tags