Spring boot 获取正确的IP和协议[http/https]

       在使用spring boot服务的时候,一般都会加反向代理,这时候并不能正确获取真实的IP,网上解决方案说的比较明确,都可以解决问题。很少有人会问如何获取http/https,因为很少人用程序获取真实的访问路径,可能都把地址加到配置文件里了。

       nginx的配置

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;

       第四个配置是帮助spring boot获取正确协议头的配置。 同时也需要在application.yml里加增加一个配置,当然如果你直接从头上获取,也可以不增加配置。

server:
  forward-headers-strategy: native

参数是native和framework两者选择,当然还有none不做考虑。framework的话可以自己增加一个过滤器进行header的处理。

以上处理适合spring boot 2.2后的版本。

猜你喜欢

转载自blog.csdn.net/saperliu/article/details/129270026
今日推荐