a2dismod ssl
我们是否必须使用上述设置的命令禁用 Apache 的 ssl 模式,因为在启动 haproxy 时它会抱怨端口443 is already being used
?
答案1
如果我理解正确的话,那么您有一台运行 apache 和 haproxy 的服务器。现在 apache 报告错误already being used
?所以这意味着两者都尝试使用 433 端口。
所以是的,您可以(并且需要)禁用 ssl 模块和/或停用listen XXX:443
配置行。
答案2
同步有正确答案。正如这篇文章所示在同一台服务器上运行 Apache、Nginx 和 HAProxy(Debian、Ubuntu、CentOS)。
这个想法是让你的 apache 服务器在本地监听,这样端口就可以开放,以供 haproxy 公开监听。
(略作修改,因为这里我们只处理 haproxy 和 apache)
编辑 /etc/apache2/ports.conf 文件。
改变
Listen 80
Listen 443
到
Listen 127.0.0.1:80
Listen 127.0.0.1:443
然后你的站点配置也在 sites-available 中
<VirtualHost *:80>
到
<VirtualHost 127.0.0.1:80>
如果有 SSL 虚拟主机,则也更改
<VirtualHost *:443>
到
<VirtualHost 127.0.0.1:443>
重新启动 Apache。
现在配置 haproxy(从全新安装开始)
nano /etc/haproxy/haproxy.cfg
在文件末尾添加以下代码片段
frontend http
bind publicipaddress:80
mode http
redirect scheme https code 301
frontend https
bind publicipaddress:443
mode tcp
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
backend apache
mode tcp
option ssl-hello-chk
server apache 127.0.0.1:443 check