多台服务器的 Apache SSL 反向代理

多台服务器的 Apache SSL 反向代理

我见过不同的版本,但没有一个能明确满足我的需要。我有一个安装了通配符证书的 Apache 服务器。现在我想让 Apache 做两件事:

1) 监听 http 上的请求并永久请求每个站点的 https。2) 将该 https 请求代理到仅在端口 80 上监听的内部服务器。

我确信我将拥有多个虚拟主机条目,并假设 CName 为 www.mydomain.com、test.mydomain.com、staging.mydomain.com。它们全部指向同一个 IP,即我的 Apache 服务器。

因此,当请求到达时,http://www.mydomain.com应将其重定向https://www.mydomain.com到 192.168.20.200 的内部服务器,然后通过代理http://test.mydomain.com转发。当请求到达 192.168.20.201 时,应将其https://test.mydomain.com重定向到 192.168.20.201,然后通过代理转发……依此类推。

据我猜测,www.mydomain.com 的虚拟主机应该是这样的:

名称虚拟主机 *:80

<VirtualHost *:80>
ServerName www.mydomain.com
Redirect permanent / `https://www.mydomain.com/`
</VirtualHost>

<VirtualHost *:443>
ServerName www.mydomain.com
ProxyPass / `http://192.168.20.200/`
ProxyPassReverse / `http://192.168.20.200/`
</VirtualHost>

我不确定这是否是正确的方法(我已经看到一些使用重写的示例)并且我不确定每个域是否需要两个虚拟主机条目。

有人可以验证这是正确的方法吗?此 Apache 将成为此域中多个主机的反向代理。

答案1

对于要执行的操作,您已进行了正确的设置。

可以删除 URL 周围的斜线。

相关内容