본문으로 바로가기

파일의 IT 블로그

  1. Home
  2. 정보/Xpenology
  3. [Xpenology] Jupyterlab 시놀로지 역방향 프록시 커널 접속 오류 해결 방법

[Xpenology] Jupyterlab 시놀로지 역방향 프록시 커널 접속 오류 해결 방법

· 댓글개 · KRFile

저의 경우 시놀로지 + Docker + Jupyterlab의 조합으로 웹에서 파이썬 코딩을 하고 있는데 8888포트로 개방해서 접속하다가 좀더 편한 접속을 위해서 역방향 프록시로 80번 포트 -> 8888포트로 이동하게끔 설정을 해놨습니다.

 

근데 이렇게 해놓으면 문제가 있는데, Jupyter Lab(Notebook도 동일) 의 경우 일단 서버를 열고 거기에 들어가서 코딩을 하면 서버에 연결된 커널에서 파이썬 코드가 실행되게 됩니다.

 

보통 서버랑 커널이 같은 컴퓨터에서 구동된다고 보시면 됩니다. 저는 시놀로지 NAS로 열고 있어서 시놀로지 NAS가 Jupyter 서버와 코드 실행을 둘다 담당하고 있는데

 

역방향 프록시를 걸어버리면 이 커널로 접속이 안되는 문제가 발생합니다.

 

예를 들어서 제대로 커널이 연결됬으면 저렇게 빨간 네모 박스에 있는 것 처럼 Python 3 | Idle 이라고 표시가 됩니다.

 

그러나 역방향 프록시로 접속을 하면 저렇게 커널이 접속이 안되는 문제가 발생합니다.

원래 열려있던 주소:8888 포트로 접속을 하면 커널이 잘 연결되구요...

 

커널이 코드 실행해주는 역할이라서 연결이 안되면 그냥 Python 코드실행이 안되는 바보가 되버립니다.

 

이 문제를 도대체 어떻게 해결할까 정말 고민했는데.. 인터넷에 나와있는건 Nginx 설정을 바꾸라는 말 밖에 없었습니다

Putty로 개삽질도 해보고 여러번 해본결과 그냥 포기하고 80번 포트로 개방하려 했는데 

 

NAS에 Visual Studio(code-server) Server 을 설치 하던 중 약간의 힌트를 얻었고 같은 방법을 적용한 결과 해결할 수 있었습니다.

 

역방향 프록시로 접속해서 커널이 연결이 안되는 문제는 Jupyter Lab과 연결된 역방향 프록시 규칙에 가서

위와 같이 Upgrade와 Connection 에 값 설정을 해주시면 됩니다.

 

* Jupyter Notebook 의 경우에도 동일하게 해주시면 될 거 같습니다. 

 

직접 타이핑 할 필요 없고 저기 생성 버튼 오른쪽에  ▼ 버튼이 보이실건데 그러면 WebSocket 이라고 뜹니다.

저걸 눌러주시면 저 값 2개가 알아서 추가가 됩니다.


확인 눌러주시면 적용이 될 것 입니다.

 

이 방법은 아까도 말했듯이 Visual Stuio Code Server을 만들다가 알아낸 것 입니다. 역방향 프록시로 접속하니 어김없이 code-server은 동작하지 않았고 인터넷에 저렇게 설정하란 방법이 있어서 따라해보니 연결이 되더군요.

Jupyter Lab에서도 동일하게 바꿔보면 작동하지 않을까 했는데 운이 좋게도 성공했습니다.

 

설정 이후 역방향 프록시 80번 포트로 접속을 했는데도 커널 접속이 잘 되는 모습입니다.

당연히 코드 실행도 잘 됩니다.

SNS 공유하기
💬 댓글 개
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.