centos 7部署Haproxy+Nginx+NFS

Posted 鹤~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos 7部署Haproxy+Nginx+NFS相关的知识,希望对你有一定的参考价值。

 

目录

1.1部署前准备:

1.2nginx安装

 1.3编译安装haproxy

 1.4安装NFS

 实验结束


1.1部署前准备:

实验要求:

使用四台centos7虚拟机

haproxy:192.168.83.128

nginx(1):192.168.83.137

nginx(2):192.168.83.138

nfs:192.168.83.139

 关闭防火墙

systemctl stop firewalld.service             //临时关闭
systemctl disable firewalld.service          //永久关闭

关闭selinux

临时关闭:setenforce 0

永久关闭(需要重启才生效):vi /etc/selinux/config                              进入目录

                  SELINUX=disabled                                修改配置文件

 nginx压缩包:提取码:owx9

haproxy压缩包:提取码:021h

1.2nginx安装

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

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

上传安装包到此目录下

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

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

启动服务
/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

测试nginx

 按照nginx1安装nginx2

测试nginx2

 1.3编译安装haproxy

上传安装包到/etc/src目录下

tar zxf haproxy-1.5.19.tar.gz  解压安装包

cd /usr/src/haproxy-1.5.19/    进入解压后的目录

make TARGET=linux26 && make install      编译安装

建立haproxy配置文件

cd ~
mkdir /etc/haproxy   返回家目录创建配置文件目录

cd /usr/src/haproxy-1.5.19/

cp examples/haproxy.cfg /etc/haproxy/    将haproxy.cfg文件复制到配置文件目录

Haproxy配置项介绍

 根据实验要求,haproxy.cfg配置文件修改如下(注意节点IP要改为nginx服务器的

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.83.137:80 check inter 2000 fall 3
        server  inst2   192.168.83.138:80 check inter 2000 fall 3

创建自启动脚本

[root@localhost ~]# cd /usr/src/haproxy-1.5.19/
[root@localhost haproxy-1.5.19]# cp examples/haproxy.init /etc/init.d/haproxy
[root@localhost haproxy-1.5.19]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@localhost haproxy-1.5.19]# chmod +x /etc/init.d/haproxy 
[root@localhost haproxy-1.5.19]# chkconfig --add /etc/init.d/haproxy 
[root@localhost haproxy-1.5.19]# /etc/init.d/haproxy start
Starting haproxy (via systemctl):                          [  OK  ]
[root@localhost ~]# systemctl stop firewalld

测试:

使用浏览器输入haproxy服务器的IP,显示出nginx1的页面,刷新几次显示出nginx2的页面就成功了。

 

 

开启haproxy监控页面

编辑haproxy.cfg,加入如下参数

 listen admin_stats
        stats   enable
        bind    *:8080    #监听的ip端口号
        mode    http    #开关
        option  httplog
        log     global
        maxconn 10
        stats   refresh 30s   #统计页面自动刷新时间
        stats   uri /admin    #访问的uri   ip:8080/admin
        stats   realm haproxy
        stats   auth admin:admin  #认证用户名和密码
        stats   hide-version   #隐藏HAProxy的版本号
        stats   admin if TRUE   #管理界面,如果认证成功了,可通过webui管理节点 

退出后保存

重启haproxy服务      service haproxy restart

浏览器访问http://ip:8080/admin

用户名:admin       密码:admin

 1.4安装NFS

yum -y install nfs-utils           yum安装

ss -tnulp | grep 111      查看rpc服务是否自动启动,如果没有启动,就systemctl start rpcbind 启动rpc服务。

rpm -qa nfs-utils            查看是否安装成功

vim /etc/exports
/data    192.168.1.0/24(rw,async)       编辑/etc/exports,添加此内容

systemctl start nfs          启动nfs服务

rpcinfo -p 192.168.83.139     查看

使用    ss -tnulp | grep 111命令

 使用rpcinfo -p 192.168.83.139查看,如图所示

 使用showmount -e localhost    如下

 创建/data目录添加文件,更改权限(很重要!!!!!

mkdir /data 
touch /data/index.html                      创建目录data和index.html文件

echo "hello nfs" >> /data/index.html        输入“hello nfs”内容到文件中

chown -R nfsnobody.nfsnobody /data          给/data目录权限

两台nginx服务器安装nfs

yum -y install nfs-utils

检测rpc是否启动

使用showmount -e 192.168.83.139查看

挂载至本地/mnt目录

mount -t nfs 192.168.83.139:/data /mnt 

 

 修改两台nginx服务器的配置文件,将访问页面路径修改为挂载路径,如下图

vim /usr/local/nginx/conf/nginx.conf

 

 修改完成,重新载入配置文件

/usr/local/nginx/sbin/nginx  -s reload

 

 在nfs服务器中执行,让nfs,rpcbind开机自动启

systemctl enable nfs-server.server

systemctl enable rpcbind

测试,输入haproxy服务器IP显示如下图,多刷新几次不变就是成功了。

 

 实验结束

以上是关于centos 7部署Haproxy+Nginx+NFS的主要内容,如果未能解决你的问题,请参考以下文章

Centos 7 安装部署 nginx+haproxy+nfs 的部署方法

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

CentOS7部署Haproxy 1.7.2

CentOS 7搭建Haproxy+Nginx+Firewalld+DNS负载均衡

CentOS7 上部署Haproxy及Nginx 搭建Web群集

centos7(Linux)部署nginx+HAProxy+nfs