原创

Springboot被Nginx代理后的重定向问题


写在前面

有一段时间没有更新文章了,上次做完评论邮件提醒功能后,也没有仔细测试。又顺便把博客加了HTTPS 证书。

导致原来的重定向失效了。😭

通过万能的度娘找到了幕后黑手🤡,因为添加了HTTPS 的问题,tomcat被nginx代理后,获取不到正确的协议。

然后问题就好解决啦🤓

nginx配置如下

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;

Spring boot配置文件也要修改(springboot版本不用,可能会有些差别)

server:
  tomcat:
    remoteip:
      remote-ip-header: X-Forwarded-For
      protocol-header: X-Forwarded-Proto
      port-header: X-Forwarded-Port
      protocol-header-https-value: https
    use-relative-redirects: true

最后是nginx完整配置。

location / {
    root html;
    index index.html index.htm;
    proxy_pass http://127.0.0.1:8080;

    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Port $server_port;
}

以上参考:

Nginx 反向代理后 Spring Boot 下 WebSocket 会无法连接的问题

  • 作者:北风(联系作者)
  • 发表时间:2021-01-13 19:04:22
  • 更新时间:2021-01-13 19:04:22
  • 版权声明:自由转载-非商用-非衍生-保持署名
  • 评论

    gfsg
    哇哇呜呜呜呜呜呜
    q
    dsvdxb
    q  
    svdsfv
    dsad  @ q
    test
    评论