使用情景如果是僻肖,連接跳板機(jī)(跳板機(jī)有足夠的權(quán)限)老翘,然后再連接內(nèi)網(wǎng)的 jupyter notebook 如果要簡(jiǎn)單掀亩,可以直接使用 vscode, 添加端口轉(zhuǎn)發(fā)毅待。
但這個(gè)方法如果連接不穩(wěn)定,則會(huì)反復(fù)遇到網(wǎng)絡(luò)斷開(kāi)的情況归榕,vscode 重新建立轉(zhuǎn)發(fā)比較慢,整個(gè)流程會(huì)比較麻煩吱涉。那么刹泄,可以考慮在跳板機(jī)部署反向代理。
Nginx安裝配置
- 安裝配置 Nginx
sudo apt install nginx
- 添加反向代理配置
修改 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;
根據(jù)實(shí)際地址怎爵,編輯配置:
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監(jiān)聽(tīng)對(duì)應(yīng)ip地址特石,以及允許所有Orgin的包
配置 ServerApp.ip
和 ServerApp.allow_origin
jupyter notebook --ServerApp.ip=0.0.0.0 --ServerApp.allow_origin=*
問(wèn)題說(shuō)明
- 如果不設(shè)定
--ServerApp.allow_origin=*
, 那么大概率會(huì)遇到403 forbidden
錯(cuò)誤 - 如果不設(shè)定
proxy_http_version 1.1;
, 那么大概率會(huì)遇到101 switching protocols
錯(cuò)誤