NGINX反向代理Cisco vManage Web UI登录无跳转异常求助
NGINX反向代理Cisco vManage Web UI登录重定向失效问题解决
环境说明
- GNS3服务器上部署了Cisco vManage
- 同一服务器通过Docker运行NGINX,用于代理访问内部vManage
问题现象
直接访问vManage时,向/j_security_check发送POST登录请求,服务器会返回302临时重定向响应,包含跳转至仪表盘的location头;但通过NGINX代理登录时,响应状态码变为200,且丢失location头,无法自动跳转到仪表盘。
当前NGINX配置
server { listen 80; server_name 10.23.2.202; location / { proxy_pass https://192.168.122.2:8443; 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-Forwarded-Proto $scheme; } }
解决方案
需要调整NGINX配置,确保正确处理vManage返回的重定向响应,保留并改写location头,同时保证Cookie正常传递。修改后的配置如下:
server { listen 80; server_name 10.23.2.202; location / { proxy_pass https://192.168.122.2:8443; 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-Forwarded-Proto $scheme; # 把vManage返回的内部地址重定向替换为NGINX代理地址 proxy_redirect https://192.168.122.2:8443/ http://$server_name/; # 禁止NGINX拦截重定向响应 proxy_intercept_errors off; # 调整Cookie域,确保客户端能正确携带登录Cookie proxy_cookie_domain 192.168.122.2 $server_name; } }
配置说明
- proxy_redirect:将vManage返回的location头中的内部地址替换为NGINX的代理地址,保证客户端跳转到正确的外部访问地址
- proxy_intercept_errors off:避免NGINX将302重定向视为错误处理,确保原始响应状态码和头信息完整传递给客户端
- proxy_cookie_domain:修改vManage设置的Cookie所属域,让客户端在访问代理地址时能正确携带Cookie,维持登录状态
内容的提问来源于stack exchange,提问作者Alex D.
相关产品推荐
相关产品推荐

