我在设置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)。 现在不应该直接访问这些站点,因为不再有端口转发。
现在我的问题是,反向代理的正确配置如何?我是否还需要在代理服务器上为每项服务启用证书?
感谢您的帮助!
答案 0 :(得分:0)
不完全确定您的最终目标是什么。证书适用于面向客户端的服务器。如果您希望人们在不必设置端口的情况下访问该站点,则可以在虚拟主机配置中使用Redirect语句。
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://www.example.com
</VirtualHost>
哪会转发任何非ssl流量以使用ssl虚拟主机。