[Synology NAS] 웹소켓 설정 (Setting WebSocket)

Jupyter Notebook을 설치하고 역방향 프록시(Reverse Proxy)를 사용해서 Web 주소를 내부 서버의 특정 포트로 연결하는 과정에 웹소켓(WebSocket)에 대해서 알게 되었다. 기존에 작성한 글(출처 2)과 같이 Reverse Proxy만 설정하게 되면 Jupyter Notebook에 접속은 가능하다. 하지만, “Terminal”, “Python Kernel” 등에 제대로 접속을 하지 않는다. 인터넷을 찾아보니 Jupyter Notebook 역방향 프록시를 사용하기 위해서는 웹소켓 설정을 해야 한다고 한다 (출처 3).

웹소켓의 정확한 의미는 출처 1을 참조하면 된다. 웹소켓을 간단히 설명하면 기존 Web(단방향 통신)과 달리 양방향 통신을 하기 위해서 사용한다고 한다. 기존 단방향 통신의 경우 클라이언트가 특정 홈페이지에 접속하면 서버가 해당 사이트에 출력돼야 하는 정보를 보내주면 웹페이지가 클라이언트에게 보여진다. 이 경우 서버에서 새로운 데이터를 업데이트하여서 클라이언트가 화면을 Refresh 하지 않으면 홈페이지에 변경된 정보를 알 방법이 없다. 웹소켓의 경우 양방향 통신이다. 기존 Web의 단방향 통신과 달리 서버에서 변경되는 정보를 클라이언트에 알려주고 바로 업데이트를 진행한다. Jupyter Notebook의 경우 WebSocket 설정이 되어 있어야 Python, Terminal 등을 사용할 수 있다.

Synology NAS에서 WebSocket을 설정하는 방법은 아래 그림 1과 같이 Reverse Proxy 설정에서 WebSocket을 생성하면 된다. 만약 WebSocket생성 버튼이 없는 경우 “머리글 이름”과 “값”을 아래 그림1과 같이 설정하면 된다. 

그림 1: WebSocket 설정하는 방법 (출처 3)

솔직히 위 값들이 정확히 어떤 의미인지는 모른다. 단순히 WebSocket을 생성하고 나면 Reverse Proxy로 설정한 Jupyter Notebook이 정상적으로 동작한다는 것을 확인하였다. 다음에 위 값들의 의미를 알게 되면 글을 추가할 계획이다.


출처

  1. http://utk-unm.blogspot.com/2016/10/websocket.html
  2. https://mkblog.co.kr/2017/10/28/synology-nas-reverse-proxy/
  3. https://mlohr.com/websockets-for-synology-dsm/

Leave a Comment