centos7部署安装haproxy+nginx+nfs实现高可用代理

Posted 逆行~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7部署安装haproxy+nginx+nfs实现高可用代理相关的知识,希望对你有一定的参考价值。

一、Haproxy概述、简介
(1)Haproxy简介
Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,也是目前来说比较流行的一种集群调度工具
支持双机热备、虚拟主机、基于TCP和HTTP应用代理等功能
对于双机热备来说,Haproxy配置简单,拥有很好的对服务器节点的健康检查功能,当其代理的后端服务器出现故障时,Haproxy会自动的将该故障服务器摘除,当服务器的故障恢复后Haproxy还会自动讲RS服务器添加 (和keepalived的健康检查差不多)
对于高性能的反向代理来说,Haproxy使用于那些访问量很大,但是又需要会话保持或者七层应用的业务。Haproxy运行在普通的服务器硬件上,仅仅是进行简单的优化就可以支持数以万计的并发连接,并且它的运行模式使得它可以很简单、安全的整合到各种网站的架构中,同时使得应用服务器的ip地址不会暴露在网络中。Haproxy软件引入了frontend (前端) 和 backend (后端) 的功能,而frontend的acl匹配规则可以让运维管理人员根据任意HTTP请求作为头部来进行规则匹配,然后再把请求定向到相关的backend (即server pools 服务器池等待前端把请求转过来的服务器组) 。通过frontend和backup (备用服务器) ,我们可以很容易的实现Haproxy的七层代理功能,haproxy是一款不可多得的优秀代理服务软件
(2)Haproxy和LVS、nginx的比较
LVS性能最好,但是相对于Haproxy来说,搭建要复杂许多
Nginx的upstream模块支持集群功能,但是对集群节点的健康检查功能不强,性能没有Haproxy好
(3)Haproxy的代理模式
主要支持两种代理模式:
第一个: 四层TCP代理
例如:可以用于邮件服务器内部协议通信服务器、mysql服务器等
第二个: 七层代理
在四层TCP代理模式下,Haproxy仅在客户端和服务器之间双向转发流量,但是在七层模式下Haproxy会分析应用层协议,并且能够通过运行、拒绝、交换、增加、修改或者删除请求(request)或者回应(reponse)里指定内容来控制协议
 

          主机         IP地址    软件包
         haproxy192.168.168.152haproxy-2.4.8.tar.gz
         nginx192.168.168.162nginx-1.8.1.tar.gz
         nginx192.168.168.163nginx-1.8.1.tar.gz
         NFS192.168.168.140

实验目的

利用haproxy+nginx搭建的群集,使内部web服务器不用把ip地址暴露在网络上,并且实现两台web服务器页面的来回切换,实现负载均衡

实验操作

关闭防火墙:system stop firewalld.server

1.安装web1服务器 ip:192.168.168.162

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

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   解压安装包

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  安装

nginx生成文件在/usr/local/nginx

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

# 重新载入配置文件
/usr/local/nginx/sbin/nginx  -s reload

# 重启
/usr/local/nginx/sbin/nginx  -s reopen
# 停止
/usr/local/nginx/sbin/nginx  -s stop
另一台web2同样配置

web1配置测试页面

echo "Server 192.168.168.162" >index.html

web2配置测试页面

echo "Server 192.168.168.163" > index.html

注:前提要在html这个目录下输入这两条命令,先把nginx运行停止配置完重新载入配置文件开启nginx服务

2. 配置haproxy代理

切换目录

cd /opt/

解压文件包

tar -zxvf haproxy-2.4.8.tar.gz

进去目录

cd haproxy-2.4.8.tar.gz

make TARGET=generic

export PATH=$PATH:/opt/haproxy-1.7.8/haproxy

让此环境生效

source /etc/profile

mkdir /etc/haproxy #在etc下目录创建haproxy

vim haproxy.cfg #修改配置文件

/opt/haproxy-2.4.8/haproxy -f /etc/haproxy/haproxy.cfg     #开启haproxy服务

验证自启动成功:

[root@localhost haproxy-1.7.8]# lsof -i:8888 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME haproxy 45031 root 3u IPv4 228341 0t0 TCP localhost.localdomain:ddi-tcp-1 (LISTEN)

3.测试web群集

1)在客户端使用浏览器打开http://192.168.168.162浏览器显示信息如图所示

2)再次打开一个新的浏览器页面访问http://192.168.168.152,浏览器显示信息如图所示:

       可以看到 群集的负载均衡已经生效,以及满足了群集的高性能要求

4.部署NFS共享目录发布资源

1)安装nfs-utils,rpcbind

yum -y install nfs-utils rpcbind

systemctl enable nfs      #设置自启动服务

systemctl enable rpcbind      #设置自启动rpcbind服务

2)设置共享目录

mkdir /etc/html

编辑exports

vi /etc/exports

3)启动NFS服务程序
systemctl start rpcbind

systemctl start nfs

4)查看本机发布的共享目录 

在客户机安装rpc,不用开启

yum -y install rpcbind nfs-utils

5)客户机使用showmount查看nfs服务器共享了哪些目录

6)手动挂载NFS共享目录

完成挂载后访问客户机的文件夹相当于访问NFS服务器里面的 

 

 

 

 

以上是关于centos7部署安装haproxy+nginx+nfs实现高可用代理的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7上部署Haproxy+Nginx实现Web群集

centos7部署安装haproxy+nginx+nfs实现高可用代理

centos 7 部署haproxy+nginx+nfs服务

CentOS7部署Haproxy 1.7.2

centos 7部署Haproxy+Nginx+NFS

centos 7下部署Nginx Web服务+Haproxy监控+Nfs共享