我想要完成的是让一个jupyter笔记本在VM上运行localhost并使用nginx反向代理通过https在线提供。
目前我正试图通过普通的http来测试它的工作原理
我使用了很多我在网上找到的配置,但它没有用。
目前我的nginx配置如下:
server{
listen 80;
server_name jupyterdomain.com;
location /home/user/.jupyter {
proxy_pass http://localhost:port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
}
然后我用jupyter笔记本密码创建了一个密码,用密码生成了一个JSON文件,我将其复制到jupyter_notebook_config.py文件中
在jupyter_notebook_config.py文件中,我有以下配置:
c.NotebookApp.allow_origin = '*'
c.NotebookApp.allow_root = False
c.NotebookApp.base_url = 'jupyterdomain.com'
c.NotebookApp.ip = '127.0.0.1'
c.NotebookApp.notebook_dir = u'/home/user/.jupyter'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:passwordhash'
c.NotebookApp.password_required = True
c.NotebookApp.port = port
c.NotebookApp.port_retries = 50
当启动jupyter笔记本时,似乎运行正常,并显示以下消息:
[I 15:35:22.626 NotebookApp] Serving notebooks from local directory: /home/user/.jupyter
[I 15:35:22.626 NotebookApp] 0 active kernels
[I 15:35:22.626 NotebookApp] The Jupyter Notebook is running at:
[I 15:35:22.626 NotebookApp] http://127.0.0.1:port/jupyterdomain.com/
[I 15:35:22.627 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
所以问题是jupyterdomain.com服务于nginx欢迎页面。
我不知道我错过了什么,它可能是nginx配置或jupyter配置。也许我没有正确安装jupyter?喜欢错误的道路或什么的。
请注意,我没有使用anacoda,我只使用了pip和python 2.7(这是我想让jupyter运行的版本)
提前感谢任何建议。
编辑:尝试通过ssh隧道从我的本地电脑访问笔记本电脑是成功的,但只使用:"本地主机:端口/ jupyterdomain.com"在浏览器上。
不在localhost:port
答案 0 :(得分:0)
尝试此处的配置或其变体: http://nathan.vertile.com/blog/2017/12/07/run-jupyter-notebook-behind-a-nginx-reverse-proxy-subpath/
答案 1 :(得分:0)
我不使用ngix或apache,但是我有代码将jupyter放在haproxy后面,并且效果很好:
backend jupyter
option forwardfor
http-request set-header X-Client-IP %[src]
reqrep ^([^\ :]*)\ /mez/(.*) \1\ /\2
reqadd X-Script-Name:\ /<WEBSITENAME>
option http-server-close
server Server12 10.0.0.12:8888 weight 40 check
server Server14 10.0.0.14:8888 weight 20 check
答案 2 :(得分:0)
这是我的设置。 假设http:// abc / jupyter将重定向到 http:// localhost:8888 / jupyter
步骤1:设置jupyter笔记本(jupyter_notebook_config.py) c.NotebookApp.base_project_url ='/ jupyter /'
然后是nginx
location /jupyter {
proxy_pass http://localhost:8888;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 20d;
}