nginx 反向代理 url 错误

我在内网的机器A上用docker部署了一个jupyter notebook,其ip10.11.11.10,服务端口号为8888,机器B可以通过部门二级域名(如child.testgroup.org)访问其80端口的内容。

现在我在,B机的nginx上做反向代理,希望通过child.testgroup.org/notebook来访问jupyter notebook。我的配置如下:

location /notebook/ {
                proxy_pass http://10.11.11.10:8888/;
                proxy_redirect off;
                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_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }

但通过child.testgroup.org/notebook来访问时总是出现url错误,如下图:
URL错误

jupyter notebook会跳转到/tree这个目录下,gitlab-ce会跳转到/sign_in,本来希望urlchild.testgroup.org/notebook/treechild.testgroup.org/notebook/sign_in,但跳转时,包括后续的ajax请求都不会自动加上/notebook/这一段,变成了child.testgroup.org/treechild.testgroup.org/sign_in

请大家帮忙看看怎么办,是修改nginx配置还是需要其它的要素。

阅读 5.2k
1 个回答

proxy_pass后面加上/notebook/,并且希望child.testgroup.org/notebook可访问,那location应该为/notebook

location /notebook {
                proxy_pass http://10.11.11.10:8888/notebook/;
                proxy_redirect off;
                ...
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题