使用 HAProxy 配置 HTTP 负载均衡器 (2)
时间:2015-01-31 19:41 来源:linux.it.net.cn 作者:IT
启动 HAProxy
如果你完成了配置,现在启动 HAProxy 并验证是否运行正常。
在 Centos/RHEL 中启动 HAProxy
让 HAProxy 开机自启,使用下面的命令
-
# chkconfig haproxy on
-
# service haproxy start
当然,防火墙需要开放 80 端口,像下面这样
CentOS/RHEL 7 的防火墙
-
# firewallcmd permanent zone=public addport=80/tcp
-
# firewallcmd reload
CentOS/RHEL 6 的防火墙
把下面内容加至 /etc/sysconfig/iptables 中的 ":OUTPUT ACCEPT" 段中
-
A INPUT m state state NEW m tcp p tcp dport 80 j ACCEPT
重启iptables:
-
# service iptables restart
在 Debian 中启动 HAProxy
启动 HAProxy
-
# service haproxy start
不要忘了防火墙开放 80 端口,在 /etc/iptables.up.rules 中加入:
-
A INPUT p tcp dport 80 j ACCEPT
在 Ubuntu 中启动HAProxy
让 HAProxy 开机自动启动在 /etc/default/haproxy 中配置
-
ENABLED=1
启动 HAProxy:
-
# service haproxy start
防火墙开放 80 端口:
-
# ufw allow 80
测试 HAProxy
检查 HAProxy 是否工作正常,我们可以这样做
首先准备一个 test.php 文件,文件内容如下
-
<?php
-
header('Content-Type: text/plain');
-
echo "Server IP: ".$_SERVER['SERVER_ADDR'];
-
echo "\nX-Forwarded-for: ".$_SERVER['HTTP_X_FORWARDED_FOR'];
-
?>
这个 PHP 文件会告诉我们哪台服务器(如负载均衡)转发了请求,哪台后端 Web 服务器实际处理了请求。
将这个 PHP 文件放到两个后端 Web 服务器的 Web 根目录中。然后用 curl 命令通过负载均衡器(192.168.100.4)访问这个文件
-
$ curl http://192.168.100.4/test.php
我们多次运行这个命令此时,会发现交替的输出下面的内容(因为使用了轮询算法):
-
Server IP: 192.168.100.2
-
X-Forwarded-for: 192.168.100.4
-
Server IP: 192.168.100.3
-
X-Forwarded-for: 192.168.100.4
如果我们停掉一台后端 Web 服务,curl 命令仍然正常工作,请求被分发至另一台可用的 Web 服务器。
总结
现在你有了一个完全可用的负载均衡器,以轮询的模式对你的 Web 节点进行负载均衡。还可以去实验其他的配置选项以适应你的环境。希望这个教程可以帮助你们的 Web 项目有更好的可用性。
你可能已经发现了,这个教程只包含单台负载均衡的设置。这意味着我们仍然有单点故障的问题。在真实场景中,你应该至少部署 2 台或者 3 台负载均衡以防止意外发生,但这不是本教程的范围。
如果你有任何问题或建议,请在评论中提出,我会尽我的努力回答。
(责任编辑:IT)
启动 HAProxy如果你完成了配置,现在启动 HAProxy 并验证是否运行正常。
在 Centos/RHEL 中启动 HAProxy让 HAProxy 开机自启,使用下面的命令
当然,防火墙需要开放 80 端口,像下面这样
CentOS/RHEL 7 的防火墙
CentOS/RHEL 6 的防火墙把下面内容加至 /etc/sysconfig/iptables 中的 ":OUTPUT ACCEPT" 段中
重启iptables:
在 Debian 中启动 HAProxy启动 HAProxy
不要忘了防火墙开放 80 端口,在 /etc/iptables.up.rules 中加入:
在 Ubuntu 中启动HAProxy让 HAProxy 开机自动启动在 /etc/default/haproxy 中配置
启动 HAProxy:
防火墙开放 80 端口:
测试 HAProxy检查 HAProxy 是否工作正常,我们可以这样做 首先准备一个 test.php 文件,文件内容如下
这个 PHP 文件会告诉我们哪台服务器(如负载均衡)转发了请求,哪台后端 Web 服务器实际处理了请求。 将这个 PHP 文件放到两个后端 Web 服务器的 Web 根目录中。然后用 curl 命令通过负载均衡器(192.168.100.4)访问这个文件
我们多次运行这个命令此时,会发现交替的输出下面的内容(因为使用了轮询算法):
如果我们停掉一台后端 Web 服务,curl 命令仍然正常工作,请求被分发至另一台可用的 Web 服务器。
总结现在你有了一个完全可用的负载均衡器,以轮询的模式对你的 Web 节点进行负载均衡。还可以去实验其他的配置选项以适应你的环境。希望这个教程可以帮助你们的 Web 项目有更好的可用性。 你可能已经发现了,这个教程只包含单台负载均衡的设置。这意味着我们仍然有单点故障的问题。在真实场景中,你应该至少部署 2 台或者 3 台负载均衡以防止意外发生,但这不是本教程的范围。
如果你有任何问题或建议,请在评论中提出,我会尽我的努力回答。 |