全球主机交流论坛

标题: nginx二级目录代理服务,认证页面返回302问题求助 [打印本页]

作者: archer99    时间: 2021-11-24 11:54
标题: nginx二级目录代理服务,认证页面返回302问题求助
本帖最后由 archer99 于 2021-11-24 13:32 编辑

因为域名有限,一个域名复用
nginx上配置了一个二级目录/dev/jupyter/,代理到10.100.20.3:8888的服务
这个8888的服务登陆是有auth login页面的,访问会有302重定向,导致访问有问题,以下是当前的配置。麻烦彦祖们指导一下,这种有登陆页面的怎么配置。

当前配置
location ~ /dev/jupyte {
    rewrite ^/dev/jupyte(.*)$ /$1 break;
    proxy_set_header Host $hostserver_port;
    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_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_pass http://10.100.20.3:8888;
    proxy_redirect default;
    access_log  /opt/nginx/log/jupyter_8888.log;
}

已有的一个思路是加个判断:
if ($http_cookie !~* "User-Token") {
proxy_pass $host//dev/jupyte/auth_login?;
break;
}

一直使用的是不带认证的,然后url做个拼接就访问过去了,这种有认证的页面,又是二级目录代理,怎么搞?
如果是根目录代理的话,就没这些问题了
作者: archer99    时间: 2021-11-24 13:06
有大佬搞过吗
作者: 他回精神病院了    时间: 2021-11-24 13:19
就算不带认证你这个nginx配置也有问题吧,除了根目录其他目录都访问不到吧。
  1. rewrite ^/dev/jupyte(.*)$ / break;
复制代码
去掉,location改成
  1. location ~ /dev/jupyte/(.*)
复制代码
,proxy_pass改成
  1. proxy_pass http://10.100.20.3:8888/$1;
复制代码

这样应该就ok了
作者: archer99    时间: 2021-11-24 13:31
他回精神病院了 发表于 2021-11-24 13:19
就算不带认证你这个nginx配置也有问题吧,除了根目录其他目录都访问不到吧。
把去掉,location改成,proxy_ ...

谢谢大佬,rewrite ^/dev/jupyte(.*)$ /$1 break; 这里更新了一下。这俩效果应该一样的




欢迎光临 全球主机交流论坛 (https://loc.888543.xyz/) Powered by Discuz! X3.4