目 录CONTENT

文章目录

Nginx 反向代理 + 后端 response.sendRedirect() 结果URL地址不对

阿豪
2022-05-27 / 6 评论 / 10 点赞 / 371 阅读 / 250 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-09-13,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

情景描述

当我访问后台时,重定向后的目标URL应该是 “https://www.lanbenben.com/???/index.html”,可结果URL确为 “https://serverlist/???/index.html”

这个问题也是我在部署博客时发生的,接下来大家跟我一起往下看 👀

由于涉及部分隐私,所以贴了一张差不多原理的图 😆

解决方案

1.后端代码示例

@GetMapping("${xxx}")
public void admin(HttpServletResponse response) throws IOException {
    String demoIndexRedirectUri =
        DemoUtils.ensureBoth(demoProperties.getAdminPath(), DemoUtils.URL_SEPARATOR)
            + INDEX_REDIRECT_URI;
    response.sendRedirect(demoIndexRedirectUri);
}

2.Nginx 原配置(核心部分)

server {
	location / {
		root   html;
		index  index.html index.htm;
		proxy_pass http://serverlist;
	}
}

3.修改之后的 Nginx 配置(核心部分)

server {
	location / {
		root   html;
		index  index.html index.htm;
		proxy_pass http://serverlist;
		proxy_set_header Host      $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header REMOTE-HOST $remote_addr;
		proxy_redirect off;
		proxy_set_header  X-Forwarded-Proto  $scheme;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	}
}

本文后续将会更新更详细的解决步骤,敬请期待

10
广告 广告

评论区