Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


使用 HAProxy 配置 HTTP 负载均衡器

2015-1-28 09:06    评论: 2 收藏: 5 分享: 11    

启动 HAProxy

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

在 Centos/RHEL 中启动 HAProxy

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

# chkconfig haproxy on
# service haproxy start 

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

CentOS/RHEL 7 的防火墙

# firewall­cmd ­­permanent ­­zone=public ­­add­port=80/tcp
# firewall­cmd ­­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 台负载均衡以防止意外发生,但这不是本教程的范围。

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


via: http://xmodulo.com/haproxy-http-load-balancer-linux.html

作者:Jaroslav Štěpánek 译者:Liao 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

12
查看其它分页:

发表评论


最新评论

我也要发表评论

布酱_傻又呆 2015-1-28 11:03  新浪微博网友评论
有些没用过的配置,留看
回复
光投奥特曼 2015-1-28 09:33  新浪微博网友评论
@有道云笔记收藏
回复
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。