apache/nginx中equest.getServerName()外网环境获取不到代理地址/域名
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
前兩天做了個項目,讓同事拿去投標,為了給用戶演示,需要外網(wǎng)訪問,于是配置了apache代理。隨之問題就來了,外網(wǎng)訪問的時候,request.getServerName()總是獲取不到代理服務器的地址(外網(wǎng)域名地址),返回的卻是是公司內(nèi)網(wǎng)地址192.168.x.x。
網(wǎng)上搜羅些資料,發(fā)現(xiàn)默認情況下,apache作為代理為了提高性能,一些Http頭部信息不回轉發(fā)給后臺服務器,其中就包括代理服務器的host信息,而tomcat中對于request.getServerName()的實現(xiàn),就是取這個host信息,如果http header總沒設置,則取本機IP地址。
所以,要解決這個問題,需要在配置代理的時候,顯示告訴代理服務器,需要把代理服務器的Host轉發(fā)給后臺服務:
apache 為:在<VirtualHost/>標簽中的最后添加 ProxyPreserveHost on
nginx為:在location {...}中添加 proxy_set_header Host $host;
轉載于:https://my.oschina.net/u/2403498/blog/2050250
總結
以上是生活随笔為你收集整理的apache/nginx中equest.getServerName()外网环境获取不到代理地址/域名的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几维安全Javascript代码混淆(j
- 下一篇: 如何在 Intellij IDEA 更高