k8s 容器应用代理-gateway
最后发布时间 : 2024-11-16 20:53:48
浏览量 :
对jupyter的代理
jupyter lab --NotebookApp.token='' --NotebookApp.ip='0.0.0.0' --NotebookApp.base_url='/jupyter/'
- id: vscode-cloud
uri: http://192.168.10.177:32007
predicates:
- Path=/vscode/**
filters:
- RewritePath=/vscode/?(?<segment>.*), /$\{segment}
- id: vscode2
uri: http://192.168.10.177:32007
predicates:
- Path=/vscode2/**
filters:
- StripPrefix=1
- id: jupyter
uri: http://192.168.10.30:8888
predicates:
- Path=/jupyter/**
注意: 代理jupyter
与代理vscode
不同,不能使用filters: StripPrefix=1
代理jupyter与代理vscode的区别是什么
代理vscode访问
http://192.168.10.30:40000/vscode/
实际上访问http://192.168.10.30:40000
,nginx也有类似的代理。vscode的所有资源都在相对于基路径/vscode/
上(/vscode/?folder=/data
),请求静态资源都是相对路径因此代理时去掉路径vscode
是可以的,所有静态资源都能在路由上找到映射,并且代理后也能找到真正资源的位置。
对于jupyter
,当我们试图采用与vscode
相同的方式代理时,
jupyter lab --NotebookApp.token='' --NotebookApp.ip='0.0.0.0'
- id: jupyter
uri: http://192.168.10.30:8888
predicates:
- Path=/jupyter/**
filters:
- StripPrefix=1
当你试图访问http://192.168.10.30:40000/jupyter/
浏览器会跳跳转到http://192.168.10.30:40000/lab?
,由于StripPrefix=1
会导致实际访问路径是没有jupyter
的,并且http://192.168.10.30:40000
这个ip下是没有路由lab
的。因此我们首先需要去掉StripPrefix=1
- id: jupyter
uri: http://192.168.10.30:8888
predicates:
- Path=/jupyter/**
结果如下:
同时终端也有如下错误
[W 2024-11-16 14:59:23.440 ServerApp] 404 GET /jupyter (e70b3f6436bc444490f4ec0b5624685b@192.168.10.30) 1.51ms referer=None
此时就需要添加jupyter的参数base_url
--NotebookApp.base_url='/jupyter'
接下来访问http://192.168.10.30:40000/jupyter/lab
就可以成功!
注,如果跨域可以添加参数--NotebookApp.allow_origin='*'