首页 文章

从反向代理请求中保留协议和端口号

提问于
浏览
5

案件:

用户请求https://api.abc.com

这是在http://internal.abc.com:123反向代理(Apache 2.2)到内部服务器服务器

根据Retain original request URL on mod_proxy redirect,添加:

ProxyPreserveHost On

对于httpd.conf,internal.abc.com目前将原始请求URL识别为:

http://api.abc.com:123

有什么方法可以恢复https://api.abc.com的原始网址吗?也就是说,还保留原始协议(http)和端口(80,或空也很好)

2 回答

  • 2

    我解决这个问题的方法是在我的虚拟主机文件中添加一个 Headers . RequestHeader尽早设置original-protocol-ssl true

    然后,您需要在代码中检查此标头以确定其来源 .

  • 1
    ProxyRequests Off
    ProxyPreserveHost On
    
    ProxyPass / http://internal.abc.com:123
    ProxyPassReverse / http://internal.abc.com:123
    

    我在我自己的测试中测试的这段代码应该使用internal.abc.com:123并将它隐藏到你在<virtualhost>括号中添加代码的任何url .

    如果它的api.abc.com它应该将来自internal.abc.com:123的信息代理到api.abc.com而没有它背后的端口号 . ProxyPassReverse为您完成此操作 .

相关问题