SLB https 重定向问题
ReSLB https 重定向问题
我们也碰到了这个问题,解决方法如下描述,希望能给大家带来一点儿帮助。
我们项目使用的是Spring Boot,Web服务器是内置的Tomcat,在yaml文件中添加如下配置:
logging: level: org.apache.catalina.valves.RemoteIpValve: DEBUG
如果你用的是properties,一行就行:
logging.level.org.apache.catalina.valves.RemoteIpValve=DEBUG
重启服务,盯着日志输出,当看到类似下行时
DEBUG o.a.catalina.valves.RemoteIpValve 180 - Incoming request /a/b/c with originalRemoteAddr '170.151.94.xxx'
为Tomcat添加配置:
server: use-forward-headers: true tomcat: internal-proxies: 170\.151\.94\.\d{1,3}
properties对应的是
server.use-forward-headers: trueserver.tomcat.internal-proxies: 170\\.151\\.94\\.\\d{1,3}
你懂的,IP肯定是我随便写的啦,换成你自己日志里的;就我观察,点分十进制的前三部分是固定的,有变化的是第四部分,所以用正则来匹配。
再次重启服务,然后试下https和http之间的跳转看看效果。
这里要设置internal-proxies的原因是,Spring Boot的默认配置
server.tomcat.internal-proxies=10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\ 192\\.168\\.\\d{1,3}\\.\\d{1,3}|\\ 169\\.254\\.\\d{1,3}\\.\\d{1,3}|\\ 127\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\ 172\\.1[6-9]{1}\\.\\d{1,3}\\.\\d{1,3}|\\ 172\\.2[0-9]{1}\\.\\d{1,3}\\.\\d{1,3}|\\ 172\\.3[0-1]{1}\\.\\d{1,3}\\.\\d{1,3} # regular expression matching trusted IP addresses.不满足我们的需求。
参考链接:
h*ttps://stackoverflow.com/questions/25455969/spring-boot-with-embedded-tomcat-behind-apache-proxy#answer-30234549
h*ttps://docs.spring.io/spring-boot/docs/1.5.12.RELEASE/reference/htmlsingle/#howto-enable-https
h*ttps://docs.spring.io/spring-boot/docs/1.5.12.RELEASE/reference/htmlsingle/#howto-customize-tomcat-behind-a-proxy-server
PS: 去掉*号,因为Aliyun说我5贴未到不允许发链接
-------------------------
回 7楼云上珠玑的帖子
没明白你的意思。你是在阿里云的SLB后面又挂了自己的nginx?
赞0
踩0