当前位置: > Linux集群 > 负载均衡SLB >

使用 HAProxy 配置 HTTP 负载均衡器 (2)

时间:2015-01-31 19:41来源:linux.it.net.cn 作者:IT



 

启动 HAProxy

如果你完成了配置,现在启动 HAProxy 并验证是否运行正常。

在 Centos/RHEL 中启动 HAProxy

让 HAProxy 开机自启,使用下面的命令


  1. # chkconfig haproxy on
  2. # service haproxy start

当然,防火墙需要开放 80 端口,像下面这样

CentOS/RHEL 7 的防火墙


  1. # firewall­cmd ­­permanent ­­zone=public ­­add­port=80/tcp
  2. # firewall­cmd ­­reload

CentOS/RHEL 6 的防火墙

把下面内容加至 /etc/sysconfig/iptables 中的 ":OUTPUT ACCEPT" 段中


  1. ­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 80 ­j ACCEPT

重启iptables


  1. # service iptables restart

在 Debian 中启动 HAProxy

启动 HAProxy


  1. # service haproxy start

不要忘了防火墙开放 80 端口,在 /etc/iptables.up.rules 中加入:


  1. ­A INPUT ­p tcp ­­dport 80 ­j ACCEPT

在 Ubuntu 中启动HAProxy

让 HAProxy 开机自动启动在 /etc/default/haproxy 中配置


  1. ENABLED=1

启动 HAProxy:


  1. # service haproxy start

防火墙开放 80 端口:


  1. # ufw allow 80

测试 HAProxy

检查 HAProxy 是否工作正常,我们可以这样做

首先准备一个 test.php 文件,文件内容如下


  1. <?php
  2. header('Content-Type: text/plain');
  3. echo "Server IP: ".$_SERVER['SERVER_ADDR'];
  4. echo "\nX-Forwarded-for: ".$_SERVER['HTTP_X_FORWARDED_FOR'];
  5. ?>

这个 PHP 文件会告诉我们哪台服务器(如负载均衡)转发了请求,哪台后端 Web 服务器实际处理了请求。

将这个 PHP 文件放到两个后端 Web 服务器的 Web 根目录中。然后用 curl 命令通过负载均衡器(192.168.100.4)访问这个文件


  1. $ curl http://192.168.100.4/test.php

我们多次运行这个命令此时,会发现交替的输出下面的内容(因为使用了轮询算法):


  1. Server IP: 192.168.100.2
  2. X-Forwarded-for: 192.168.100.4


  1. Server IP: 192.168.100.3
  2. X-Forwarded-for: 192.168.100.4

如果我们停掉一台后端 Web 服务,curl 命令仍然正常工作,请求被分发至另一台可用的 Web 服务器。

总结

现在你有了一个完全可用的负载均衡器,以轮询的模式对你的 Web 节点进行负载均衡。还可以去实验其他的配置选项以适应你的环境。希望这个教程可以帮助你们的 Web 项目有更好的可用性。

你可能已经发现了,这个教程只包含单台负载均衡的设置。这意味着我们仍然有单点故障的问题。在真实场景中,你应该至少部署 2 台或者 3 台负载均衡以防止意外发生,但这不是本教程的范围。

如果你有任何问题或建议,请在评论中提出,我会尽我的努力回答。

 

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容