假设我有 3 个 URL,它们都指向同一个反向代理。我希望根据主机标头将请求转发到代理后面的 Web 服务器:
webfront1.example.com > reverseproxy.example.com > backend1.example.com
webfront2.example.com > reverseproxy.example.com > backend2.example.com
webfront3.example.com > reverseproxy.example.com > backend3.example.com
根据我所读的内容,我可以配置reverseproxy.example.com/webfront1 > backend1.example.com, reverseproxy.example.com/webfront2 > backend2.example.com
等。
我想知道基于主机头的代理是否可行,或者我是否完全使用了错误的方法。
答案1
您可以使用基于名称的虚拟主机来实现此目的。示例配置:
NameVirtualHost *:80
ProxyRequests off
<VirtualHost *:80>
ServerName webfront1.example.com
ProxyPass / http://backend1.example.com/
ProxyPassReverse / http://backend1.example.com/
</VirtualHost>
<VirtualHost *:80>
ServerName webfront2.example.com
ProxyPass / http://backend2.example.com/
ProxyPassReverse / http://backend2.example.com/
</VirtualHost>
请注意,如果您想在 reverseproxy.example.com 上使用 SSL,事情会变得更加复杂。