无法使用nginx反向代理服务jupyter笔记本

时间:2018-01-12 15:44:52

标签: python-2.7 nginx jupyter-notebook

我想要完成的是让一个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

3 个答案:

答案 0 :(得分:0)

答案 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;
  }