nginx二级目录代理服务,认证页面返回302问题求助

[复制链接]
查看: 9984   回复: 3
发表于 2022-8-3 16:55:08 | 显示全部楼层 |阅读模式
因为域名有限,一个域名复用
nginx上配置了一个二级目录/dev/jupyter/,代理到10.100.20.3:8888的服务
这个8888的服务登陆是有auth login页面的,访问会有302重定向,导致访问有问题,以下是当前的配置。麻烦彦祖们指导一下,这种有登陆页面的怎么配置。

当前配置
location ~ /dev/jupyte {
    rewrite ^/dev/jupyte(.*)$ /$1 break;
    proxy_set_header Host $host:$server_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做个拼接就访问过去了,这种有认证的页面,又是二级目录代理,怎么搞?
如果是根目录代理的话,就没这些问题了
回复

使用道具 举报

发表于 2022-8-3 16:55:40 | 显示全部楼层
有大佬搞过吗
回复 支持 反对

使用道具 举报

发表于 2022-8-3 16:56:03 | 显示全部楼层
就算不带认证你这个nginx配置也有问题吧,除了根目录其他目录都访问不到吧。
  1. rewrite ^/dev/jupyte(.*)$ / break;
复制代码
去掉,location改成
  1. location ~ /dev/jupyte/(.*)
复制代码
,proxy_pass改成
  1. proxy_pass http://10.100.20.3:8888/$1;
复制代码
这样应该就ok了
回复 支持 反对

使用道具 举报

发表于 2022-8-3 16:56:33 | 显示全部楼层
谢谢大佬,rewrite ^/dev/jupyte(.*)$ /$1 break; 这里更新了一下。这俩效果应该一样的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则