Apache-2.4
Apache ProxyPass 到域的共享 IP 地址
我有一個案例,我需要將域 (domain1.com) 代理傳遞到託管在共享 ip 地址 (192.168.168.168) 上的不同域 (domain2.com),但 domain2.com DNS 指向的不是共享 ip地址,所以 domain2.com 不能作為代理通行證,只能作為共享 ip 地址。
由於共享 ip 地址有多個主機名,是否有域或主機名配置選項可以與 proxypass 一起使用以強制在另一端進行虛擬主機查找?例如,使用這個 apache conf 文件將 domain1.com 代理到 192.168.168.168。
#Apache Reverse Proxy SSLProxyEngine on <Location /> ProxyPass http://192.168.168.168/ ProxyPassReverse http://192.168.168.168/ </Location>
是否可以進行任何更改來告訴在該 IP 上查找哪個域?
共享 IP 地址 (192.168.168.168) 上的網路伺服器依賴具有已知主機/域名的 Host 標頭來顯示正確的內容。
ProxyPass
您通常可以通過在指令中實際使用該主機/域名來輕鬆實現:<Location /> ProxyPass http://domain2.com/ ProxyPassReverse http://domain2.com/ </Location>
由於您聲明 domain2.com 的實際 DNS 條目不正確,您可以通過在 web 伺服器主機文件中添加 domain2.com 和 192.168.168.168 IP 地址來覆蓋它
# /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 # added for Apache reverse proxy 192.168.168.168 domain2.com
另一種方法是顯式配置 Apache 以使用
RequestHeader
指令設置正確的主機標頭,類似於以下內容:<Location /> RequestHeader set Host "domain2.com" ProxyPass http://192.168.168.168/ ProxyPassReverse http://domain2.com/ </Location>