根据请求主机头进行 mod_proxy 转发

根据请求主机头进行 mod_proxy 转发

假设我有 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,事情会变得更加复杂。

相关内容