--------------------------------------------------------------
Centos 6.6 环境 php http://lampol.blog.51cto.com/11662628/1851016
--------------------------------------------------------------
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
准备 3台服务器
A服务器IP :192.168.1.121 (负责分发到149和142)
B服务器IP :192.168.1.149
C服务器IP :192.168.5.142
(一)nginx 配置负载均衡
Ngnix:
1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构;
2、Nginx对网络的依赖比较小,理论上能ping通就就能进行负载功能;
3、Nginx安装和配置比较简单,测试起来比较方便;
4、也可以承担高的负载压力且稳定,一般能支撑超过1万次的并发;
5、对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测。
6、Nginx对请求的异步处理可以帮助节点服务器减轻负载;
7、Nginx仅能支持http、https和Email协议,这样就在适用范围较小。
8、不支持Session的直接保持,但能通过ip_hash来解决。、对Big request header的支持不是很好,
9、支持负载均衡算法:Round-robin(轮循)、Weight-round-robin(带权轮循)、Ip-hash(Ip哈希)
10、Nginx还能做Web服务器即Cache功能。
配置nginx.conf 添加以下配置
upstream 192.168.1.121 {
server 192.168.1.149:80;
server 192.168.1.142:80;
}
server
{
listen 80 default_server;
server_name test.com;
location /{
proxy_pass http://192.168.1.121;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
配置完后重启nginx即可 浏览器输入 192.168.1.121
然后再刷新网页 就会分发到不同的ip
(二)haproxy 安装请参考(http://lampol.blog.51cto.com/11662628/1852226)
1 拷贝配置文件 到haproxy 安装的examples 原文件拷贝
cp haproxy.cfg /usr/local/haproxy/
开始配置文件
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
chroot /usr/local/haproxy
uid 99
gid 99
daemon
#debug
#quiet
defaults
log global
mode http
option httplog
option dontlognull
retries 3
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
maxconn 2000
frontend http-front
bind *:8080
mode http
option httplog
log global
default_backend htmlbackend
backend htmlbackend
balance roundrobin
server web1 192.168.1.142:80 cookie 1 weight 5 check inter 2000 rise 2 fall 3
server web2 192.168.1.157:80 cookie 2 weight 3 check inter 2000 rise 2 fall 3
配置haproxy 启动脚本
#! /bin/sh
set -e
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/haproxy/sbin
PROGDIR=/usr/local/haproxy
PROGNAME=haproxy
DAEMON=$PROGDIR/sbin/$PROGNAME
CONFIG=$PROGDIR/$PROGNAME.conf
PIDFILE=$PROGDIR/$PROGNAME.pid
DESC="HAProxy daemon"
SCRIPTNAME=/etc/init.d/$PROGNAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
start()
{
echo -n "Starting $DESC: $PROGNAME"
$DAEMON -f $CONFIG -p $PIDFILE
echo "."
}
stop()
{
echo -n "Stopping $DESC: $PROGNAME"
kill `cat $PIDFILE`
rm -f $PIDFILE
echo "."
}
restart()
{
echo -n "Restarting $DESC: $PROGNAME"
$DAEMON -f $CONFIG -p $PIDFILE -sf $(cat $PIDFILE)
echo "."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
重启haproxy 访问 192.168.1.121:8080
到此两种方法的负载均衡配置完毕 不是很完善 后期继续完善 另外还存在分发时的session共享问题下个文章再说