软件包,Nginx和haproxy需要的自取
链接:https://pan.baidu.com/s/19oS_In0GvbqQzJU5VfPupw
提取码:f2ed
复制这段内容后打开百度网盘手机App,操作更方便哦
一、概述
- Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理软件
- 适合于负载特别大的Web站点
- 运行在当前的硬件上可支持数以万计的并发连接请求
二、实验目的
当高并发请求来临时,haproxy服务器能够调度后面的Web节点服务器以轮询的方式处理请求
三、实验拓扑
四、实验环境
五、实验配置
5.1、haproxy服务器配置
- 上传haproxy源码文件到/opt目录下,编译安装haproxy
[root@haproxy ~]# yum install bzip2-devel pcre-devel gcc gcc-c++ make -y
[root@haproxy ~]# cd /opt
[root@haproxy opt]# ls
haproxy-1.5.19.tar.gz rh ###已经上传
[root@haproxy opt]# tar zxvf haproxy-1.5.19.tar.gz -C /opt ##解压
[root@haproxy opt]# cd /opt/haproxy-1.5.19/
[root@haproxy haproxy-1.5.19]# uname -a ###查看当前系统信息
Linux haproxy 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@haproxy haproxy-1.5.19]# make TARGET=linux3100 ###执行编译
[root@haproxy haproxy-1.5.19]# make install ##安装
- 修改haproxy.cfg配置文件
[root@haproxy haproxy-1.5.19]# vi /opt/haproxy-1.5.19/examples/haproxy.cfg
- listen字段全部删除,新插入以下字段
- 编辑启动脚本
##将源码目录下的examples/haproxy.init复制到/etc/init.d/下
[root@haproxy ~]# cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
###添加执行权限
[root@haproxy ~]# chmod +x /etc/init.d/haproxy
###添加service服务
[root@haproxy ~]# chkconfig --add /etc/init.d/haproxy
[root@haproxy ~]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
###关闭防火墙
[root@haproxy ~]# systemctl stop firewalld
[root@haproxy ~]# setenforce 0
###启动服务
[root@haproxy ~]# service haproxy start
##查看服务端口
[root@haproxy ~]# netstat -antp|grep haproxy
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7134/haproxy
5.2、nginx服务器1配置
- 安装环境依赖包
[root@nginx1 ~]# yum install -y \
pcre-devel \
gcc \
gcc-c++ \
make
- 创建程序性用户
[root@nginx1 ~]# useradd -M -s /sbin/nologin nginx
- 上传nginx源码包,解压到opt目录
[root@nginx1 ~]# tar zxvf /opt/nginx-1.12.2.tar.gz -C /opt
- 编译安装
[root@nginx1 ~]# cd /opt/nginx-1.12.2/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make && make install
- 编辑web首页信息
[root@nginx1 ~]# cd /usr/local/nginx/html/
[root@nginx1 ~]# echo "this is 1111 web" >test.html
- 创建软连接方便管理
[root@nginx1 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
- 关闭防火墙,启动服务
[root@nginx1 ~]# systemctl stop firewalld
[root@nginx1 ~]# setenforce 0
[root@nginx1 ~]# nginx
[root@nginx1 ~]# netstat -ntap | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15677/nginx: master
5.3、nginx服务器2配置
- nginx2配置与nginx1相同,只需在站点目录中插入不同内容加以区分即可
[root@nginx1 ~]# cd /usr/local/nginx/html/
[root@nginx1 ~]# echo "this is 2222 web" >test.html
- 关闭防火墙,启动服务
[root@nginx2 ~]# systemctl stop firewalld
[root@nginx2 ~]# setenforce 0
[root@nginx2 ~]# nginx
[root@nginx2 ~]# netstat -ntap | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15677/nginx: master
六、验证
- 开启客户机192.168.100.40/24模拟请求,直接访问haproxy服务器(不断刷新web界面)。
- 此时haproxy服务器会以轮询的方式调度后面的nginx服务器处理请求。