目的:做负载均衡
步骤:做两台nginx服务器,一台haproxy转发器
首先安装nginx
1.安装相关的依赖包。
yum install gcc -c++ yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel
2.下载nginx包
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
3、默认配置
./configure
4、编译
make&&make install
特别注意:如果你和我一样是虚拟机,需要关闭防火墙才能访问到nginx的其实页面
systemctl stop firewalld.service systemctl start firewalld.service
相同的方法安装两台nginx服务器;因为我是虚拟机,所以直接克隆的;
安装haproxy
1、下载
从这个网站下载https://src.fedoraproject.org/repo/pkgs/haproxy/
wget https://src.fedoraproject.org/repo/pkgs/haproxy/haproxy-1.6.3.tar.gz/3362d1e268c78155c2474cb73e7f03f9/haproxy-1.6.3.tar.gz
2、解压
tar -zxvf haproxy-1.7.5.tar.gz cd haproxy-1.7.5
3、安装
make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/haproxy make install PREFIX=/usr/local/haproxy
注意
TARGET=linux26 #内核版本,使用uname -r查看内核,如:2.6.18-371.el5,此时该参数就为linux26;
kernel 大于2.6.28的 用:TARGET=linux2628
ARCH=x86_64 #系统位数
PREFIX=/usr/local/haprpxy #/usr/local/haprpxy为haprpxy安装路径
4、配置
安装完成后需要自己手动创建配置文件
cd /usr/local/haproxy #进入haproxy安装目录 touche haproxy.cfg #创建配置文件 vi haproxy.cfg #编辑配置文件
以下是配置文件具体内容:
5、启动
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
负载均衡示例
global log 127.0.0.1 local1 maxconn 65000 #最大连接数 # chroot /usr/local/haproxy #安装目录 # uid haproxy #用户haproxy # gid haproxy #组haproxy daemon #守护进程运行 nbproc 1 #进程数量 defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 frontend main bind *:80 #监听地址 acl url_static path_beg -i /static /images /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js use_backend static if url_static default_backend my_webserver #定义一个名为my_app前端部分。此处将对于的请求转发给后端(集群池名称) backend static #使用了静态动态分离(如果url_path匹配 .jpg .gif .png .css .js静态文件则访问此后端) balance roundrobin #负载均衡算法(#banlance roundrobin 轮询) server static 127.0.0.1:80 check #静态文件部署在本机(也可以部署在其他机器或者squid缓存服务器 backend my_webserver mode http option forwardfor balance roundrobin #这里采用的是轮询 cookie SERVERID option httpchk HEAD /index.html # 下面两个地址是我的服务器的地址 server web01 192.168.50.107:80 cookie web01 check inter 2000 rise 3 fall 3 weight 3 server web02 192.168.50.59:82 cookie web02 check inter 2000 rise 3 fall 3 weight 3
我自己开了3台虚拟机,两台nginx(182.168.50.107:80,192.168.50.59:82),一台haproxy(http://192.168.50.81/)
当我访问haproxy时,会自动转发到两台nginx服务器上;当我把其中一台服务器杀死后,haproxy会自动剔除死去的服务器,哇,厉害厉害