前言
环境介绍
一、关闭防火墙
二、编译安装Nginx
测试
三、安装Haproxy服务
测试
四、部署NFS
五、将共享目录挂载到Nginx主机里
测试
HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服。
NFS(Network File System)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享彼此的文件。简单的讲就是可以挂载远程主机的共享目录到本地,就像操作本地磁盘一样,非常方便的操作远程文件。
本次实验使用到四台服务器,一台服务器安装haproxy实现调度,另两台服务器搭建nginx提供web服务,一台服务器部署NFS服务用来共享文件给nginx服务器。
主机 | 系统 | IP | 服务 |
---|---|---|---|
Haproxy | Centos7 | 192.168.114.151 | haproxy |
Nginx1 | Centos7 | 192.168.114.150 | nginx |
Nginx2 | Centos7 | 192.168.114.149 | nginx |
NFS | Centos7 | 192.168.114.153 | nfs |
注意:四台主机都需要关闭防火墙
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #开机不自启
注意:1-7步骤的代码在Nginx1、Nginx2主机里各操作一遍
1.安装Nginx 编译所需所有依赖项
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
2.下载我们需要编译的源代码
wget http://nginx.org/download/nginx-1.17.6.tar.gz
3.下载完毕后我们需要解压它
tar -zxvf nginx-1.17.6.tar.gz
4.进入nginx-1.17.6文件夹
cd nginx-1.17.6/
5.选择安装的模块
./configure --prefix=/software/nginx
6.执行编译指令,输入以下命令
make && make install
7.启动nginx服务
cd /software/nginx/sbin/
./nginx
主机Nginx1
修改web
echo "Web 1" > /software/nginx/html/index.html
主机Nginx2
echo "Web 2" > /software/nginx/html/index.html
使用浏览器访问Nginx1主机的IP
使用浏览器访问Nginx2主机的IP
注意:在Haproxy主机里安装haproxy服务
1.使用yum安装haproxy服务
yum install haproxy -y
2.修改haproxy服务的配置文件
vim /etc/haproxy/haproxy.cfg
将配置文件里面的内容删掉,并将下面的内容添加进去即可
注意:以下内容中有些IP地址需要更改为Nginx1、Nginx2主机的IP地址
global
log /dev/log local0 info
log /dev/log local0 notice
#log loghost local0 info
maxconn 4096
#chroot /usr/share/haproxy
uid 99
gid 99
daemon
#debug
#quiet
defaults
log global
mode http
option httplog
option dontlognull
retries 3
redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webserver 0.0.0.0:80
option httpchk GET /index.html
balance roundrobin
server inst1 192.168.114.150:80 check inter 2000 fall 3
#以上IP地址需要更改为主机Nginx1的IP地址
server inst2 192.168.114.149:80 check inter 2000 fall 3
#以上IP地址需要更改为主机Nginx2的IP地址
listen admin_stats
stats enable
bind *:8080 #监听的ip端口号
mode http #开关
option httplog
log global
maxconn 10
stats refresh 5s #统计页面自动刷新时间
stats uri /admin #访问的uri ip:8080/admin
stats realm haproxy
stats auth admin:admin #认证用户名和密码
stats hide-version #隐藏HAProxy的版本号
stats admin if TRUE #管理界面,如果认证成功了,可通过webui管理节点
启动服务并设置开机自启
systemctl start haproxy
systemctl disable haproxy
使用浏览器访问Haproxy主机IP
刷新一下
如果每刷新一下页面都会出现两个不懂得界面,那么Haproxy反向代理就做成功了
查看监控情况
提示:登录监控页面的账号和密码都是admin
注意:以下代码在NFS主机里操作
1.使用yum安装nfs服务
yum -y install rpcbind nfs-utils
2.创建要共享的文件夹并设置权限
mkdir /html
chmod 755 -R /html/
3.在nfs的配置文件/etc/exports添加内容
echo "/html 192.168.114.0/24(rw,no_root_squash,no_all_squash,sync)" >> /etc/exports
上面这行代码是将共享目录/html共享给192.168.114.0/24这个网段的客户端,后面括号里的内容是权限参数
4.启动服务并设置开机自启
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
5.需要执行以下命令使配置文件/etc/exports立即生效
exportfs -r
6.使用 showmount 命令来查看本机是否可连接
showmount -e 192.168.114.153
7.在共享目录/html创建文件index.html并添加内容进去
touch /html/index.html
echo "nfs" > index.html
注意:以下代码在Nginx1、Nginx2主机里各操作一遍
1.安装rpcbind服务并启动
yum -y install rpcbind
systemctl start rpcbind
2.查看服务端已共享的目录
showmount -e 192.168.114.153
3.建立挂载目录,执行挂载命令
mkdir -p /mnt/html
mount -t nfs 192.168.114.153:/html /mnt/html/
4.修改nginx服务的配置文件/software/nginx/html/index.html
vim /software/nginx/html/index.html
将
修改为
5.重载nginx服务的配置文件
/software/nginx/sbin/nginx -s reload
用浏览器访问haproxy服务器的IP地址,怎么刷新页面都是nfs就实现了