2017-05-24 132 views
0

我有一个设置Apache反向代理服务器的问题,希望你能帮助。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)。 现在不应该直接访问站点,因为没有端口转发了。

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

谢谢你的帮助!

+0

没人能帮忙吗? – user8057342

回答

0

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

<VirtualHost *:80> 

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

</VirtualHost> 

这将转发任何​​非ssl流量使用ssl虚拟主机。