1、nginx反向代理安装配置

 #!/usr/bin/bash
if [ -e /etc/nginx/nginx.conf ]
then
echo 'Already installed'
exit
else
/usr/bin/yum -y install epel*
/usr/bin/yum -y install nginx*
fi if [ -f /etc/nginx/nginx.conf ];then
msg="upstream zhanggen { server 1.1.1.1 weight=8;server 2.2.2.2 weight=6;server 3.3.3.3;}"
/usr/bin/sed -ri "/^http/a $msg" /etc/nginx/nginx.conf
/usr/bin/sed -ri "/^ *location \/ \{$/a proxy_pass http://zhanggen\;" /etc/nginx/nginx.conf
fi /usr/sbin/nginx -t
return=`echo $?`
if [ $return -ne ]
then
echo "config error"
else
echo "config success "
fi
/usr/bin/systemctl start nginx
/usr/bin/ps -ef | /usr/bin/grep nginx |/usr/bin/grep -v 'grep' value=`echo $?`
if [ $value -eq ]
then
echo 'Start nginx successful'
else
echo 'Start nginx faild please check again'
fi

2、安装配置后端nginx

 #!/usr/bin/bash
if [ -e /etc/nginx/nginx.conf ]
then
echo 'Already installed'
exit
else
yum -y install epel*;
yum -y install nginx*;
fi if [ -f /etc/nginx/nginx.conf ]
then
nginx -t
else
echo "Installation failed"
fi return=`echo $?`
if [ $return -ne ]
then
echo "config error"
else
echo "config success "
fi systemctl start nginx; ngxStatus=`ps aux | grep -v grep |grep -c nginx` if [ $ngxStatus -lt ]
then
echo "Start nginx successful"
fi

3、安装NFS服务端

 #!/usr/bin/sh
while true
# -*- coding: UTF- -*-
do
test -s /etc/exports
return=`echo $?`
if [ $return -ne ]
then
yum install rpcbind nfs-utils –y
echo "/share * (rw,sync,fsid=0)" > /etc/exports
mkdir -p /share
chmod -R o+w /share
systemctl enable nfs-server.service && systemctl enable rpcbind.service
systemctl start rpcbind.service && systemctl start nfs-server.service
iptables -F && iptables -X
share=`showmount -e`
access_IP=`awk '{print $2}' /etc/exports`
echo "NFS安装成功,您共享给大家的目录为: $share $access_IP可访问到它"
exit else
echo "已经安装了 NFS 服务"
exit
fi
done

4、安装NFS客户端

 #!/usr/bin/sh
while :
do
iptables -F && iptables -F
yum install rpcbind nfs-utils -y
service rpcbind start
service nfs start
showmount -e 192.168.182.141
re=`echo $?`
if [ $re -eq ]
then
mount -t nfs 192.168.182.141:/share /var/www/
else
mount fiald !
fi
exit
done

5、检查nginx和NFS可用性,并邮件报警。

 #!/usr/bin/sh
ps -ef |grep nfsd |grep -v 'grep'
return6=`echo $?`
if [ $return6 -ne ]
then
msg="TIME:$(/usr/bin/date +%F_%T)
HOSTNAME:$(/usr/bin/hostname)
IPADDR:$(/usr/sbin/ifconfig |/usr/bin/awk 'NR==2{print $2}')
NFS is faild"
echo "$msg"
/usr/bin/mail $msg
systemctl start nfs-server.service
fi
ps -ef |grep nginx |grep -v 'grep'
return8=`echo $?`
if [ $return8 -ne ]
then
msg="TIME:$(/usr/bin/date +%F_%T)
HOSTNAME:$(/usr/bin/hostname)
IPADDR:$(/usr/sbin/ifconfig |/usr/bin/awk 'NR==2{print $2}')
nginx is faid"
echo "$msg"
/usr/bin/mail $msg
systemctl start nginx
fi

6、Python发邮件模块 mv /usr/bin/mail

#!/usr/bin/python
# -*- coding: UTF- -*-
import sys
import smtplib
import email.mime.multipart
import email.mime.text server = 'smtp.163.com'
port = '' def sendmail(server,port,user,pwd,msg):
smtp = smtplib.SMTP()
smtp.connect(server,port)
smtp.login(user, pwd)
smtp.sendmail(msg['from'], msg['to'], msg.as_string())
smtp.quit()
print('邮件发送成功email has send out !') if __name__ == '__main__':
msg = email.mime.multipart.MIMEMultipart()
msg['Subject'] = '你是风儿我是沙,缠缠绵绵回我家'
msg['From'] = 'python4_mail@163.com'
msg['To'] = 'python4_recvmail@163.com'
user = 'python4_mail'
pwd = 'sbalex3714'
content='%s\n%s' %('\n'.join(sys.argv[:]),' '.join(sys.argv[:])) #格式处理,专门针对我们的邮件格式 txt = email.mime.text.MIMEText(content, _charset='utf-8')
msg.attach(txt) sendmail(server,port,user,pwd,msg)

7、设置crotable 每5分钟检查一次

crontab -e

*/5 * * * * /status_check.sh

(Nginx反向代理+NFS共享网页根目录)自动部署及可用性检测的更多相关文章

  1. nginx反向代理和负载均衡的简单部署

    1.   安装 1)         从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包: 2)    ...

  2. Nginx反向代理负载均衡的容器化部署

    首先,在home目录创建microservices目录,开启第一篇章. cd ~ && mkdir microservices && cd microservices ...

  3. Nginx反向代理负载均衡配置

    1.反向代理概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求 ...

  4. Linux之nginx反向代理+三台web+nfs共享存储实现集群配置

    作业四:nginx反向代理+三台web+nfs共享存储实现集群配置 在各个web服务器上挂载nfs [root@localhost nginx]# mount -t nfs 192.168.152.1 ...

  5. Linux基础-----------nginx安装和nginx web、nginx反向代理、nfs 服务

    作业一:nginx服务1)二进制安装nginx包 yum install epel-release -y 先安装epel-release 再查看yum源中已经安装上了epel相关文件 中间省去了一些安 ...

  6. linux---nginx服务nfs服务nginx反向代理三台web

    一:nginx服务 1.二进制安装nginx包 [root@bogon ~]# systemctl disable firewalld #关闭Firewalls自启动 Removed symlink ...

  7. Nginx反向代理,负载均衡,redis session共享,keepalived高可用

    相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...

  8. 使用python自动生成docker nginx反向代理配置

    由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...

  9. 使用nginx反向代理到不同服务器(共享同一端口)配置文件

    使用nginx反向代理到不同服务器(共享同一端口)配置文件 https://blog.csdn.net/wang_k_123/article/details/72779443 https://www. ...

随机推荐

  1. Linux命令之rz命令与sz命令

    1.rz命令 rz命令(Receive ZMODEM),使用ZMODEM协议,将本地文件批量上传到远程Linux/Unix服务器,注意不能上传文件夹. 当我们使用虚拟终端软件,如Xshell.Secu ...

  2. jQuery从0到1

    jQuery不需要安装,把下载的jquery.js文件放在网站上的一个公共的位置,需要在某个页面使用jQuery时,再相对引用即可.——其中有压缩版和未压缩版,分别用于开发和发布.http://jqu ...

  3. docker 日志分析

    日志分两类,一类是 Docker 引擎日志:另一类是 容器日志. Docker 引擎日志 Docker 引擎日志 一般是交给了 Upstart(Ubuntu 14.04) 或者 systemd (Ce ...

  4. idea创建web聚合工程(2)

    参考文档: intelj idea 创建聚合项目(典型web项目,包括子项目util.dao.service) 使用IntelliJ IDEA创建Maven聚合工程.创建resources文件夹.ss ...

  5. MVC后台获取数据和插入数据的三种方式【二】

    MVC模式下,从前端获取数据返回后台,总共有三种形式.下面的代码示例将演示如何将数据返回到后端. 一.首先我们看看表单代码,注意input标签中name的值. <html> <hea ...

  6. 串口.Qt532测试(异步)

    环境:Win7x64.Qt5.3.2 MSVC OpenGL(x86).vs2010(x86) 项目所在位置:E:\Project_Qt532\SeriesPort_Qt532_Z ZC:这里 同步方 ...

  7. vue定义全局方法 调用其他组件的方法

    官网的写法  vue实例.$on就可以在根实例上定义全局方法 this.$root就是获取根实例  如果没有根实例 就表示当前实例 this.$root.$on 不需要.eventHub 不需要下面这 ...

  8. <script src="../build/browser.min.js"></script> 是用来里面babel工具把ES6的语法转成ES5

    <!DOCTYPE html> <html> <head> <script src="../build/react.js">< ...

  9. 《剑指offer》第六十八题(树中两个结点的最低公共祖先)

    // 面试题68:树中两个结点的最低公共祖先 // 题目:输入两个树结点,求它们的最低公共祖先. #include <iostream> #include "Tree.h&quo ...

  10. 一个sql实现查询并且插入到另一个表中

    两种不同方法,结果不同 方法一.查询的user表中3个元素,name为user表中的字段,1000,0,是往department中要赋的值(给id赋值) ,`name`,' 方法二(推荐使用方法二): ...