Apache反向代理配置问题

时间:2017-05-24 14:46:32

标签: linux apache ssl proxy

我在设置apache反向代理服务器时遇到问题,希望你能提供帮助。

我有3个ubuntu网络服务器,https://service1.domain.comhttps://service2.domain.com:4433等等... 现在,我将访问这些服务器,而无需在地址栏中键入端口。

所以我的想法是使用反向代理服务器,我可以输入service2.domain.com并重定向到service2(https)。

我安装了一个带有apache的ubuntu服务器并启用了模块:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests

然后我在代理上设置了000-default.conf,内容如下:

<VirtualHost service1.domain.com:80>
    ProxyPreserveHost On

    ProxyPass / https://service1.domain.com/
    ProxyPassReverse / https://service1.domain.com/
</VirtualHost>

<VirtualHost service2.domain.com:80>
    ProxyPreserveHost On

    ProxyPass / https://service2.domain.com/
    ProxyPassReverse / https://service2.domain.com/
</VirtualHost>

路由器上的端口80和443被转发到代理服务器。 在服务(1-3)服务器上,使用来自Lets Encrypt的证书启用SSL。

现在,如果我尝试打开网站service1.domain.com,我会收到错误(cert_name)。 现在不应该直接访问这些站点,因为不再有端口转发。

现在我的问题是,反向代理的正确配置如何?我是否还需要在代理服务器上为每项服务启用证书?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

不完全确定您的最终目标是什么。证书适用于面向客户端的服务器。如果您希望人们在不必设置端口的情况下访问该站点,则可以在虚拟主机配置中使用Redirect语句。

<VirtualHost *:80>

    ServerName example.com
    ServerAlias www.example.com
    Redirect permanent / https://www.example.com

</VirtualHost>

哪会转发任何非ssl流量以使用ssl虚拟主机。