Centos7搭建haproxy+nginx+nfs

HAProxy简介

HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。

HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

nginx简介

Nginx 的使用场景如下:

HTTP 服务器

Nginx 作为 Web 服务器能独立提供 Http 服务。另外,我们常常通过 Nginx 作为静态资源服务器来访问服务器上的静态资源,比如对于最新热门的前后端分离架构,前端打好包后直接放到某个地址,在 Nginx 配置后可以通过 Nginx 来访问主机上的前端页面。

反向代理

反向代理(Reverse Proxy)方式是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。这样的好处是,将不暴露内部的服务地址,只统一使用一个公共出口,通过 URI 匹配转发到不同的内部服务处理请求。

负载均衡

负载均衡也是 Nginx 的一个高频使用场景,对于下游存在的多个相同服务,可以将请求采用某种策略(随机、轮询、权重)发到相应的服务处理。这样由于多个相同服务的存在,可以实现高可用功能,在一个服务不可用时,Nginx 会自动发现并将其剔出服务集群,将请求转发给正常的服务进行处理。

nfs简介

网络文件系统(NFS)是文件系统之上的一个网络抽象,来允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问。虽然 NFS 不是第一个此类系统,但是它已经发展并演变成 UNIX系统中最强大最广泛使用的网络文件系统。NFS 允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小化所需的存储空间。

环境介绍:

本实验使用4台服务器,一台服务器安装Haproxy实现调度,另外两台服务器搭建nginx提供web服务,最后一台服务器部署nfs共享存储。

主机 系统 IP地址 功能
Haproxy centos7 192.168.160.201 调度
nginx centos7 192.168.160.202 提供web服务
nginx centos7 192.168.160.203 提供web服务
nfs(共享存储) centos7 192.168.160.204 共享存储

安装nginx

1.两台nginx节点安装并启动。

2.yum安装所需库文件,新建管理nginx用户

1.yum -y install pcre-devel zlib-devel gcc gcc-c++ make

2.useradd -M -s /sbin/nologin nginx

3.解压文件并进行基本配置

1. cd /opt

2. tar zxvf  nginx-1.8.1.tar.gz

3. cd nginx-1.8.1

4. ./configure

     --prefix=/usr/local/nginx --user=nginx --group=nginx

4.编译安装 

1.make && make install

5.创建测试主页,创建软件接进行使用。

1.cd /usr/local/nginx/html/

2. echo "this is xf web" > test.html

3.ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin

6.启动nginx,使用netstat -antp | grep 80查看是否开启

7.第二台nginx节点是一样的配置,自行配置安装。

使用浏览器访问nginx是否开启成功。

 

 

 安装Haproxy

1.下载包

这里提供所需安装包链接,找到自己需要的安装包,我这里使用的是haproxy-1.7.8.tar.gz

Index of /repo/pkgs/haproxy (fedoraproject.org)

2.将haproxy-1.7.8.tar.gz拷贝到/opt目录下,并解压缩:

1.yum -y install pcre-devel bzip2-devel gcc gcc-c++ make

2.  tar zxvf haproxy-1.7.8.tar.gz

3.进入目录 ,编译成可执行文件。

将源代码解压之后,需要运行make来将HAProxy编译成为可执行文件。如果是在Linux2.6系统上面进行编译的话,需要设置TARGET=linux26以开启epoll支持,这也是为什么网上许多博客里面都是这么写的。对于其他的UNIX系统来说,直接采用TARGET=generic方式,本文进行安装的系统为CentOS7 ,内核3.10版本。

1.  cd haproxy-1.7.8

2.  make TARGET=linux26

3. make install

4.创建配置文件目录,修改配置文件。

1.mkdir /etc/haproxy

2.vim /etc/haproxy/haproxy.cfg

global
    log 127.0.0.1 local0   #日志
        maxconn 1000 # 最大连接数
        daemon
 
defaults
        log     global # 采用全局定义的日志
        mode    http # 默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
        option  httplog # 日志类型为http日志
        option  dontlognull # 不记录健康检查的日志信息
        retries 3   # 3次连接失败就认为服务不可用,也可以在下面设置
        timeout connect 5000   # 连接超时时间
        timeout client  50000   # 客户端连接超时时间
        timeout server 50000    # 服务器连接超时时间
 
listen admin_stats
        bind 0.0.0.0:1080   # 监听端口
        mode http   
        option httplog
        maxconn 10
        stats refresh 30s  # 统计页面刷新时间
        stats uri /stats  # 统计页面url
        stats realm XingCloud Haproxy   # 统计页面密码框的提示文本
        stats auth admin:admin   # 统计页面的验证信息
        stats auth  Frank:Frank  
        stats hide-version
        stats  admin if TRUE
listen webcluster 
       bind 0.0.0.0:80
       option httpchk GET /index.html
       balance roundrobin  # 负载均衡模式轮询
       server inst1 192.168.160.202:80 check inter 2000 fall 3  
       server inst2 192.168.160.203:80 check inter 2000 fall 3

5.创建haproxy自启动脚本,添加到service管理,开启自启

1. cp /opt/haproxy-1.7.8/examples/haproxy.init /etc/init.d/haproxy

2. chmod +x /etc/init.d/haproxy

3. chkconfig --add /etc/init.d/haproxy

4. ln -s /usr/local/sbin/haproxy /usr/sbin

6.启动haproxy,使用80端口进行监听。

1. service haproxy start

2.netstat -anpt | grep haproxy                                            #查看端口是否打开

 7.使用浏览器访问haproxy查看是否轮询成功,刷新页面显示轮询成功。

  

 部署NFS

关闭防火墙:systemctl  stop  firewalld.servive

关闭selinux: setenforce  0

1.服务器安装NFS软件

1.yum -y install  nfs-utils

 2.编辑文件参数

1. vi  /etc/exports

/backup 192.168.160.202(rw,sync,no_root_squash)
/backup 192.168.160.203(rw,sync,no_root_squash)

3.新建共享目录并修改权限

1.mkdir  /backip

2.chmod -R 777 /backup/

4.启动服务

1. systemctl  status rpcbind.service

2.systemctl  status nfs.service.service

5.加载配置文件  exportfs -r    查看   exportfs   -v

6.在nginx服务器上装nfs

1. yum -y install nfs-utils

2.mkdir /nfs

3.cd /nfs

4.showmount -e 192.168.160.206

5.mount -t nfs 192.168.160.206:/backup /nfs

6.df  -h 

挂载成功

 

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>