centos7(Linux)部署nginx+HAProxy+nfs

原理:

  1. nginx

  2. HAProxy

  3. nfs

 搭建实验环境

 关闭防火墙和核心防护(所有主机)

部署nginx:

  1. 依赖包安装

  2. 下载版本并解压

  3. 编译安装

  4. 启动nginx

部署HAProxy:

  1. 安装HAProxy

  2. 修改配置文件vi /etc/haproxy/haproxy.cfg

  3. 启动服务

部署nfs:

  1. 安装软件包

  2. 创建共享文件

  3. 修改NFS服务的主配置文件vim /etc/exports

  4. 启动服务

  5. 创建html

  6. 使用 showmount 命令来查看服务端(本机)是否可连接

  7. 挂载目录

  8. 挂载目录到nginx服务器

原理:

1.nginx

  Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。nginx作为一款高性能的服务器,除了可以做后端服务器的代理、负载均衡之外,还有一个用途就是做静态资源的缓存服务器,比如在前后端分离的项目中,为了加速前端页面的响应速度,我们可以将前端的相关资源,例如html、js、css或者图片等放到nginx指定的目录下,访问的时候只需要通过IP加路径就可以实现高效快速的访问。

2.HAProxy

  HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。

  HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy的社区非常活跃,版本更新快速。最关键的是,HAProxy具备媲美商用负载均衡器的性能和稳定性。

  因为HAProxy的上述优点,它当前不仅仅是免费负载均衡软件的首选,更几乎成为了唯一选择。

3.nfs

  网络文件系统(network files system)简称NFS是一种基于TCP传输协议的文件共享习通。
NFS的CS体系中的服务端启用协议将文件共享到网络上,然后允许本地NFS客户端通过网络挂载服务端共享的文件。应用于web服务器作为视频、图片资源的服务器、域用户家目录服务器、内容文件存储服务器。

搭建实验环境:

192.168.126.145 nginx
192.168.126.148 nginx
192.168.126.140 HAProxy
192.168.126.150 nfs

关闭防火墙和核心防护(所有主机):

systemctl stop firewalld

setenforce 0

部署nginx:

1.依赖包安装

yum -y install  gcc gcc-c++ autoconf automake libtool make openssl openssl-devel pcre pcre-devel    #依赖包安装

2.下载版本并解压

cd  /usr/local/src/     #切换安装路径

wget  http://nginx.org/download/nginx-1.8.1.tar.gz     #下载nginx,如果提示没有wget请自行安装  yum -y install wget

 tar -zxvf nginx-1.8.1.tar.gz    #解压安装包

3.编译安装

cd  nginx-1.8.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     #编译命令

make && make install    #安装

4.启动nginx

cd  /usr/local/nginx     #进入生成目录

/usr/local/nginx/sbin/nginx -t     #测试

/usr/local/nginx/sbin/nginx -V     #查看编译模块信息

/usr/local/nginx/sbin/nginx     #启动

nginxIP地址浏览器访问:

部署HAProxy:

1.安装HAProxy

yum install haproxy -y #安装HAProxy

2.修改配置文件vi /etc/haproxy/haproxy.cfg

# 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  #设置为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.29.132:80 check cookie 3
    #server  app2 192.168.29.138:80 check cookie 4
    #设定转发的后台服务器地址并开启对后台服务器的健康检查
    server  app1 192.168.126.145:80 check  #nginxiP地址
    server  app2 192.168.126.148:80 check  n#ginxiP地址
#设定监控平台
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  
        stats   hide-version   
        stats   admin if TRUE 

3.启动服务

systemctl start haproxy   #启动服务
 
netstat -tnlp |grep haproxy   #查看启动情况
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      3257/haproxy        
tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN      3257/haproxy  

  浏览器访问haproxy服务器的IP地址192.168.126.40进行验证,能够成功访问并且刷新网页能跳转到另一台nginx服务器的页面代表实验成功:

​ 

查看监控情况:

部署nfs :

1.安装软件包

yum install -y rpc-bind nfs-utils 安装软件包

2.创建共享文件

mkdir /xhm
chmod -R 777 /xhm

3.修改NFS服务的主配置文件vim /etc/exports

/xhm *(rw,sync)  #*代表所有主机都可以访问(添加规则)

4.启动服务

systemctl start rpcbind    #启动rpcbind服务

systemctl start nfs     #启动nfs服务

exportfs -r   #执行生效

5.创建html

touch /xhm/index.html 

vim /xhm/index.html

xhm040623 #在里面写入一个xhm040623

6.使用 showmount 命令来查看服务端(本机)是否可连接

[root@localhost wwx]# showmount -e localhost
Export list for localhost:
/xhm *

7.挂载目录

mount   localhost:/xhm   /mnt

8.挂载目录到nginx服务器

mount -v -t nfs 192.168.126.150:/xhm /usr/local/nginx/html/  #ip是nfs的ip 将服务端的共享目录挂载到本机的 

  浏览器中访问haproxy服务器的IP地址 怎么刷新都会是nfs上的html就完成了:

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
https://forum.starrocks.com/t/topic/552下面我们以从StarRocks)">
< <上一篇
下一篇>>