그러니까 NGINX를 reverse proxy로 사용하는 환경에서 Jupyterlab 을 사용하는 방법이다. Jupyterlab을 /에 이용하는 것은 어렵지 않다. 그런데 subfolder에 reverse proxy로 할당해서 이용하려면 설정이 대단히 복잡해 진다. 수십번의 시도 끝에 방법을 찾았다.
/sr 에 reverse proxy로 Jupyterlab을 연동시켜 보자. 우선 index.html 파일을 다음과 같이 설정한다.
<a href="sr/">Super Resolution</a><br>
다음에는 nginx 설정은 다음과 같이 했다.
upstream sr {
server sr.medein:8888;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/blog;
location /sr/ {
client_max_body_size 0;
proxy_pass http://sr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /sr/api/kernels/ {
client_max_body_size 0;
proxy_pass http://sr;
proxy_set_header Host $host;
# websocket support
proxy_http_version 1.1;
proxy_set_header Upgrade "websocket";
proxy_set_header Connection "Upgrade";
proxy_read_timeout 86400;
}
location /sr/terminals/ {
client_max_body_size 0;
proxy_pass http://sr;
proxy_set_header Host $host;
# websocket support
proxy_http_version 1.1;
proxy_set_header Upgrade "websocket";
proxy_set_header Connection "Upgrade";
proxy_read_timeout 86400;
}
}
그리고 Jupyterlab의 환경 설정 파일에서 다음과 같이 수정한다.
c.ServerApp.base_url = '/sr/'
Jupyterlab을 실행할 때 환경 파일을 정확하게 지정해 주는 것이 좋다.
jupyter lab --ip=* --no-browser --allow-root --ServerApp.config_file='/root/.jupyter/jupyter_lab_config.py'