NFS 共享 Nginx 网页根目录(自动部署)

简介: NFS 共享 Nginx 网页根目录(自动部署)
IP HOSTNAME SERVICE SYSTEM
192.168.131.132 proxy-nfs nginx+nfs-server CentOS 7.6
192.168.131.131 nginx01 nginx+nfs-client CentOS 7.6
192.168.131.130 nginx02 nginx+nfs-client CentOS 7.6

环境准备

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@localhost ~]# sestatus
SELinux status:                 disabled
[root@localhost ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@localhost ~]# hostnamectl --static set-hostname porxy-nfs
[root@localhost ~]# hostnamectl --static set-hostname nginx01
[root@localhost ~]# hostnamectl --static set-hostname nginx02

部署nginx-proxy

[root@porxy-nfs ~]# vim install_nginx_proxy.sh
#!/usr/bin/bash
if [ -e /etc/nginx/nginx.conf ]
    then
        echo 'Already installed'
        exit 0
    else
        /usr/bin/yum -y install epel* && /usr/bin/yum -y install nginx
fi

if [ -f /etc/nginx/nginx.conf ];then
    proxy="upstream nfs-share { server 192.168.131.131 weight=8;server 192.168.131.130 weight=6;}"
    /usr/bin/sed -ri "/^http/a $proxy" /etc/nginx/nginx.conf
    /usr/bin/sed -ri "/^ *location \/ \{$/a proxy_pass http://nfs-share\;" /etc/nginx/nginx.conf
fi

/usr/sbin/nginx -t
if [ $? -ne 0 ]
    then
        echo "config error"
        exit 2
    else
        echo "config success "
fi

/usr/bin/systemctl enable nginx --now
/usr/bin/ps -ef | /usr/bin/grep [n]ginx

if [ $? -eq 0 ]
    then
    echo 'Start nginx successful'
else
    echo 'Start nginx faild please check again'
fi
[root@porxy-nfs ~]# sh install_nginx_proxy.sh
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
config success
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
root      13283  10234  0 09:07 pts/0    00:00:00 sh install_nginx_proxy.sh
root      13589      1  0 09:07 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     13590  13589  0 09:07 ?        00:00:00 nginx: worker process
Start nginx successful

部署nfs-server

[root@porxy-nfs ~]# vim install_nfs_server.sh
#!/usr/bin/bash
test -s /etc/exports
if [ $? -eq 0 ]
  then
    /usr/bin/yum -y install rpcbind nfs-utils
    echo "/share 192.168.131.132/24 (rw,sync,root_squash,sid=0)" > /etc/exports
    mkdir -p /share
    chmod -R o+w /share
    systemctl enable rpcbind.service --now && systemctl enable nfs-server.service --now
    iptables -F && iptables -X
    share=`showmount -e`
    access_IP=`awk '{print $2}' /etc/exports`
    echo "NFS was successfully installed. The directory you shared with us is: $share $access_IP"
  exit
else
    echo "NFS was installed"
    exit
fi
[root@porxy-nfs ~]# sh install_nfs_server.sh
NFS was successfully installed. The directory you shared with us is:  192.168.131.132/24

部署nginx01&nginx02

[root@nginx01 ~]# vim install_nginx.sh
#!/usr/bin/bash
if [ -e /etc/nginx/nginx.conf ]
    then
        echo 'Already installed'
        exit 0
    else
        /usr/bin/yum -y install epel* && /usr/bin/yum -y install nginx
fi

/usr/sbin/nginx -t
if [ $? -ne 0 ]
    then
        echo "config error"
        exit 2
    else
        echo "config success "
fi

/usr/bin/systemctl enable nginx --now
/usr/bin/ps -ef | /usr/bin/grep [n]ginx

if [ $? -eq 0 ]
    then
    echo 'Start nginx successful'
else
    echo 'Start nginx faild please check again'
fi
[root@nginx01 ~]# sh install_nginx.sh
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
config success
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
root      22300   7245  0 09:28 pts/0    00:00:00 sh install_nginx.sh
root      23036      1  0 09:30 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     23037  23036  0 09:30 ?        00:00:00 nginx: worker process
Start nginx successful

部署nfs-client

[root@nginx01 ~]# vim install_nfs_client.sh
#!/usr/bin/bash
iptables -F && iptables -F
yum -y install rpcbind nfs-utils
systemctl enable rpcbind.service --now && systemctl enable nfs-server.service --now
showmount -e 192.168.131.132
  if [ $? -eq 0 ]
      then
          mount -t nfs 192.168.131.132:/share /usr/share/nginx/html
          echo "mount -t nfs 192.168.131.132:/share /usr/share/nginx/html" > ~/.bashrc
      else
          mount fiald !
          exit 1
  fi
[root@nginx01 ~]# sh install_nfs_client.sh
Redirecting to /bin/systemctl start rpcbind.service
Redirecting to /bin/systemctl start nfs.service
Export list for 192.168.131.132:
/share (everyone)

测试nfs共享nginx网站目录

# 只要更新了nfs的共享目录,nginx的web页面也会马上更新
[root@porxy-nfs ~]# echo "hello world" > /share/test.html
[root@porxy-nfs ~]# curl 192.168.131.132/test.html
hello world
[root@porxy-nfs ~]# echo "linux" > /share/test.html
[root@porxy-nfs ~]# curl 192.168.131.132/test.html
linux
# 基于负载均衡,查看后端nginx日志,都有访问日志,轮询也没有问题
[root@nginx01 ~]# tail /var/log/nginx/access.log
192.168.131.132 - - [10/Aug/2020:10:02:45 +0800] "GET /test.html HTTP/1.0" 200 12 "-" "curl/7.29.0" "-"
[root@nginx02 ~]# tail /var/log/nginx/access.log
192.168.131.132 - - [10/Aug/2020:10:02:39 +0800] "GET /test.html HTTP/1.1" 200 12 "-" "curl/7.29.0" "-"
目录
相关文章
|
6月前
|
弹性计算 Serverless 网络安全
于在阿里云函数计算中挂载NFS共享时出现了问题
于在阿里云函数计算中挂载NFS共享时出现了问题
99 1
|
6月前
|
编解码 前端开发 JavaScript
摄像头web网页播放功能: ffmeg和nginx实现
摄像头web网页播放功能: ffmeg和nginx实现
357 0
|
6月前
|
网络协议 Unix Linux
Centos下nfs+rpcbind实现服务器之间的文件共享
Centos下nfs+rpcbind实现服务器之间的文件共享
267 0
|
3月前
|
运维 Ubuntu 安全
在Linux中,如何配置NFS共享?
在Linux中,如何配置NFS共享?
|
3月前
|
存储 Ubuntu Linux
NFS服务部署全攻略:从零到一,轻松驾驭网络文件系统,让你的文件共享像飞一样畅快无阻!
【8月更文挑战第5天】NFS(网络文件系统)能让网络中的电脑无缝共享文件与目录。基于客户端-服务器模式,用户可像访问本地文件般透明操作远程文件。部署前需准备至少两台Linux机器:一台服务器,其余作客户端;确保已装NFS相关软件包且网络通畅。服务器端安装NFS服务与rpcbind,客户端安装nfs-utils。
95 4
|
3月前
|
Ubuntu Linux 网络安全
在Linux中,如何配置Samba或NFS文件共享?
在Linux中,如何配置Samba或NFS文件共享?
|
3月前
|
Linux
在Linux中,如何挂载远程NFS共享或iSCSI目标?
在Linux中,如何挂载远程NFS共享或iSCSI目标?
|
4月前
|
存储 云计算
云计算存储问题之NFS与其他文件共享协议共同点如何解决
云计算存储问题之NFS与其他文件共享协议共同点如何解决
|
5月前
|
Ubuntu
ubuntu搭建NFS服务 磁盘共享 nfs 搭建
ubuntu搭建NFS服务 磁盘共享 nfs 搭建
189 2
|
5月前
|
负载均衡 前端开发 应用服务中间件
技术好文共享:超详细的Nginx简易教程
技术好文共享:超详细的Nginx简易教程