jupyter 设置 Nginx 反向代理

随笔1个月前发布 花儿
23 0 0

使用情景如果是,连接跳板机(跳板机有足够的权限),然后再连接内网的 jupyter notebook 如果要简单,可以直接使用 vscode, 添加端口转发。
但这个方法如果连接不稳定,则会反复遇到网络断开的情况,vscode 重新建立转发比较慢,整个流程会比较麻烦。那么,可以考虑在跳板机部署反向代理。

Nginx安装配置

  1. 安装配置 Nginx

sudo apt install nginx

  1. 添加反向代理配置
    修改 nginx.conf

vim /etc/nginx/nginx.conf

修改 http 配置

  • 注释 default 配置(如果不需要)

< include /etc/nginx/sites-enabled/*;
---
> # include /etc/nginx/sites-enabled/*;

  • 添加 proxy_http_version 1.1; (有必要)

> proxy_http_version 1.1;

配置反向代理

vim /etc/nginx/conf.d/proxy.conf;

根据实际地址,编辑配置:

    upstream notebook{
        server 192.168.0.1:8888;
    }

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }
    server {
        listen 8888;
        location / {
            proxy_pass http://notebook;
            proxy_redirect   off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            # websocket headers
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }
    }

配置 jupyter

需要配置jupyter监听对应ip地址,以及允许所有Orgin的包
配置 ServerApp.ipServerApp.allow_origin

jupyter notebook --ServerApp.ip=0.0.0.0 --ServerApp.allow_origin=*       

问题说明

  1. 如果不设定 --ServerApp.allow_origin=*, 那么大概率会遇到 403 forbidden 错误
  2. 如果不设定 proxy_http_version 1.1;, 那么大概率会遇到 101 switching protocols 错误
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...