实验环境:准备四台centos七的虚拟机 一台haproxy的 两台nginx的 一台nfs的
主机ip | 部署 | 服务器 |
192.168.203.166 | haproxy | centos7 |
192.168.203.171 | nginx | centos7 |
192.168.203.175 | nginx | centos7 |
192.168.203.176 | nfs | centos7 |
关闭主机防火墙和修改selinux
1.systemctl stop firewalld.service
2.setenforce 0
nginx部署1
依赖包安装
1.systemctl stop firewalld.service
下载nginx
1.d /usr/local/src/ 切换安装路径
2.wget http://nginx.org/download/nginx-1.8.1.tar.gz 下载nginx,如果提示没有wget请自行安装 yum -y install wget
3.tar -zxvf nginx-1.8.1.tar.gz 解压安装包
4.cd nginx-1.8.1 打开解压出来的目录
编译命令
1./configure \
--prefix=/usr/local/nginx \--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre
2.make && make install安装
如图以上步骤 接着部署nginx2 两台nginx部署完之后去浏览器访问 如访问不了 检查一下防火墙是否关闭
haproxy部署
下载安装
1 yum install haproxy -y
配置文件修改
1.# Global settings
global
#日志管理为local2载体,需要在rsyslog中设置存放目录
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
ssl-default-bind-ciphers PROFILE=SYSTEM
ssl-default-server-ciphers PROFILE=SYSTEM
defaults
#设定为HTTP模式
mode http
log global
option httplog
option dontlognull
#设置为关闭长连接
option httpclose
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
#绑定5000端口进行负载均衡
bind *:80
#对用户申请的不同请求进行分流
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
acl url_html url_reg -i \.html$
#设置不同请求的后端服务器组
use_backend static if url_static
use_backend app if url_html
#设置默认后端服务器组
default_backend app
#后端转发设置
#static后端组服务器设置
backend static
balance roundrobin
server static 127.0.0.1:4331 check
#app后端组服务器设置
backend app
#设置转发策略
balance roundrobin
#以下设置为把真实服务器的ID插入到回复用户的信息中,用户相同的请求可根据cookie找到相同的服务器
#cookie SERVERID insert indirect nocache
#server app1 192.168.203.171:80 check cookie 3
#server app2 192.168.203.175:80 check cookie 4
#设定转发的后台服务器地址并开启对后台服务器的健康检查
server app1 192.168.203.171:80 check
server app2 192.168.203.175:80 check
#设定监控平台
listen admin_stats
stats enable
#绑定监控端口号
bind *:8080
mode http
option httplog
log global
maxconn 10
stats refresh 30s
stats uri /admin
stats realm haproxy
#设定访问权限,用户名和密码
stats auth admin:admin
rsyslog配置文件
1.module(load="imudp")
input(type="imudp" port="514")
#设定haproxy日志
local2.* /var/log/haproxy.log
启动服务
1. systemctl restart haproxy
测试验证
部署完成之后 我们就可以去haproxy查看转发记录 192.168.203.166:8080/admin登录
账户名:admin 密码:admin
安装好的nginx 192.168.203.166访问的是 两台nginx服务器的页面
nfs部署
下载安装
1.yum install -y rpc-bind nfs-utils
修改nfs配置文件
1.vim /etc/exports
#添加如下命令
/xxx *(rw,sync)
创建共享目录文件添加权限
1.[root@localhost ~]# mkdir /hjy
[root@localhost ~]# chmod -R 777 /hjy
[root@localhost ~]# touch /hjy/index.html
[root@localhost ~]#
[root@localhost ~]# vim /hjy/index.html
yyqx
yyds
保存并且生效文件配置
1.[root@localhost ~]# showmount -e localhost
Export list for localhost:
/hjy *
挂载
1.mount localhost:/hjy /mnt
接下来 在两台nginx下将共享目录挂载到默认目录上 (两台nginx都要)
1.[root@localhost html]# mount -v -t nfs 192.168.203.176:/hjy /usr/local/nginx/html/
mount.nfs: timeout set for Sun Nov 21 22:10:52 2021
mount.nfs: trying text-based options 'vers=4.1,addr=192.168.203.176,clientaddr=192.168.203.175'
以上步骤一切搞定 现在就用浏览器访问haporxy的ip地址访问
以上实验已经全部完毕!
谢谢大家观看!