Apache反向代理配置问题
问题描述:
我有一个设置Apache反向代理服务器的问题,希望你能帮助。Apache反向代理配置问题
我有3个Ubuntu的网络服务器,可在https://service1.domain.com,https://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)。 现在不应该直接访问站点,因为没有端口转发了。
我的问题是现在,逆向代理的正确配置如何?我是否还需要在代理服务器上为每项服务启用证书?
谢谢你的帮助!
答
不完全确定你的最终目标是什么。该证书适用于面向服务器的客户端。如果您希望用户无需设置端口即可访问该站点,则可以在虚拟主机配置中使用重定向语句。
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent/https://www.example.com
</VirtualHost>
这将转发任何非ssl流量使用ssl虚拟主机。
没人能帮忙吗? – user8057342