#!/bin/bash
#2020年2月16日
#auto_install_nginx_web.v3
#by fly
################################
#NGX_VER="$1"
NGX_CNF="nginx.conf"
NGX_YUM="yum install -y"
NGX_DIR="/usr/local/nginx"
NGX_SOFT="nginx-${NGX_VER}.tar.gz"
NGX_URL="http://nginx.org/download"
NGX_SRC="$(echo ${NGX_SOFT}|sed 's/\.tar.*//g')"
NGX_ARGS="--user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module"
#安装nginx
function nginx_install(){
$NGX_YUM gcc-c++ pcre pcre-devel zlib zlib-devel
$NGX_YUM wget make openssl openssl-devel net-tools
cd /usr/src
read -p "请选择版本号:(1.12.0|1.14.0|1.15.0|1.16.0):" NGX_VER
NGX_SOFT="nginx-${NGX_VER}.tar.gz"
NGX_SRC="$(echo ${NGX_SOFT}|sed 's/\.tar.*//g')"
wget -c $NGX_URL/$NGX_SOFT
tar -xf $NGX_SOFT
cd $NGX_SRC
useradd nginx
./configure --prefix=$NGX_DIR $NGX_ARGS
make && make install
$NGX_DIR/sbin/nginx
ps -ef|grep nginx
netstat -nutlp|grep -w 80
#setenforce 0
sed -i '/SELIUNX/s/enforcing/disabled/g' /etc/selinux/config
systemctl stop firewalld.service
echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local
echo -e "\033[32m nginx安装成功. \033[0m"
$NGX_DIR/sbin/nginx -v
exit
}
#卸载nginx
function nginx_remove(){
rm -rf $NGX_SOFT
rm -rf $NGX_DIR
netstat -nutlp|grep 80
systemctl stop firewalld
pkill nginx
ps -ef |grep nginx
echo -e "\033[32m nginx已卸载. \033[0m"
exit
}
#升级nginx
function nginx_update(){
$NGX_YUM gcc-c++ pcre pcre-devel zlib zlib-devel
$NGX_YUM wget make openssl openssl-devel net-tools
cd /usr/src
read -p "请选择版本号:(1.12.0|1.14.0|1.15.0|1.16.0):" NGX_VER
NGX_SOFT="nginx-${NGX_VER}.tar.gz"
NGX_SRC="nginx-$NGX_VER"
wget -c $NGX_URL/$NGX_SOFT
tar -xf $NGX_SOFT
cd $NGX_SRC
useradd nginx
./configure --prefix=$NGX_DIR $NGX_ARGS
make
mv $NGX_DIR/sbin/nginx $NGX_DIR/sbin/nginx.old
\cp objs/nginx $NGX_DIR/sbin/
$NGX_DIR/sbin/nginx -t
$NGX_DIR/sbin/nginx -s reload
netstat -nutlp|grep 80
systemctl stop firewalld
echo -e "\033[32m nginx升级成功. \033[0m"
$NGX_DIR/sbin/nginx -v
exit
} #添加虚拟主机
function virtual_add(){
#NGX_VHOST="$1"
cd $NGX_DIR/conf
grep -ai "include vhost" $NGX_CNF >>/dev/null 2>&1
if [ $? -ne 0 ];then
\cp $NGX_CNF ${NGX_CNF}.bak
grep -vE "#|^$" $NGX_CNF >${NGX_CNF}.swp
sed -i '/server/,$d' ${NGX_CNF}.swp
echo -e " include vhost/*;\n}" >>${NGX_CNF}.swp
\cp ${NGX_CNF}.swp $NGX_CNF
fi
mkdir -p vhost
cd vhost
read -p "请输入域名:(vv1.jf.com|vv2.jf.com|vv3.jf.com):" NGX_VHOST
cat>$NGX_VHOST<<EOF
server {
listen 80;
server_name $NGX_VHOST;
location / {
root html/$NGX_VHOST;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
EOF
cat $NGX_VHOST
mkdir -p $NGX_DIR/html/$NGX_VHOST
cat>$NGX_DIR/html/$NGX_VHOST/index.html<<EOF
<h1>$NGX_VHOST Test Pages.</h1>
<hr color-red>
EOF
$NGX_DIR/sbin/nginx -t >>/dev/null 2>&1
if [ $? -eq 0 ];then
echo -e "\033[32mnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok\033[0m"
echo -e "\033[32mnginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful\033[0m"
echo -e "\033[32m虚拟主机已添加!!!\033[0m"
$NGX_DIR/sbin/nginx -s reload
exit
fi
} #删除虚拟主机
function virtual_del(){
#NGX_VHOST="$1"
read -p "请输入域名:(vv1.jf.com|vv2.jf.com|vv3.jf.com):" NGX_VHOST
cd $NGX_DIR/conf/vhost/
ls ./
rm -rf $NGX_VHOST
rm -rf $NGX_DIR/html/$NGX_VHOST
$NGX_DIR/sbin/nginx -t >>/dev/null 2>&1
if [ $? -eq 0 ];then
echo -e "\033[33mnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok\033[0m"
echo -e "\033[33mnginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful\033[0m"
echo -e "\033[33m虚拟主机已删除!!!\033[0m"
$NGX_DIR/sbin/nginx -s reload
exit
fi
}
PS3=`echo -e "\033[32m/usr/bin/ $0 1)|2)|3)|4) 版本:\033[0m"`
select i in nginx_install nginx_remove nginx_update virtual_add virtual_del exit
do
case $i in
nginx_install )
nginx_install
;;
nginx_remove )
nginx_remove
;;
nginx_update )
nginx_update
;;
virtual_add )
virtual_add $1
;;
virtual_del )
virtual_del $1
;;
exit )
;;
* )
echo -e "\033[34m------------------------------ }\033[0m"
echo -e "\033[34mUsage:{/bin/sh $0 1)安装ningx }\033[0m"
echo -e "\033[34mUsage:{/bin/sh $0 2)卸载ningx }\033[0m"
echo -e "\033[34mUsage:{/bin/sh $0 3)升级ningx }\033[0m"
echo -e "\033[34mUsage:{/bin/sh $0 4)添加虚拟主机 请输入域名:www.xxx.com }\033[0m"
echo -e "\033[34mUsage:{/bin/sh $0 5)删除虚拟主机 请输入域名:www.xxx.com }\033[0m"
echo -e "\033[34m------------------------------ }\033[0m"
exit
esac
done

Nginx-多功能脚本的更多相关文章

  1. linux shell:nginx日志切割脚本

    需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名   简要命令: mv /usr/local/tengine/logs/access.l ...

  2. Nginx实现负载均衡&Nginx缓存功能

    一.Nginx是什么 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambl ...

  3. Nginx常用功能配置一

    Nginx常用功能配置 参数include配置 说明:如果日常工作中server标签存在太多,可以采用include配置模式,Nginx的主配置文件包含的所有虚拟主机的子配置文件会统一放入extra目 ...

  4. nginx常用功能和配置

    nginx常用功能和配置 1.nginx常用功能和配置 1.1 限流 1.2 压力测试工具--Ab 1.2.1安装 1.2.2 测试 1.2.3 返回值 1.3 limit_conn_zone 1.4 ...

  5. Nginx日志分析脚本

    目录 一.简介 二.脚本 一.简介 运维工作是一个比较复杂的工作,有时候面对上万条的日志,如何作分析?难道一条条的分析? 这估计看两眼就要打哈欠了吧?聪明的人会选择脚本,这就是为什么现在提倡自动化运维 ...

  6. mysql 自动备份和nginx自动安装脚本

    一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...

  7. 关于mysql和Apache以及nginx的监控脚本怎么写会比较好的记录

    最近,自己业务进行上线,上线后,需要考虑的是对各种服务进行监控,包括(httpd服务,mysqld服务等),现在想以mysqld服务为例总结下那种方式的脚本最为专业和合理: (1).根据mysql的端 ...

  8. 转:Nginx RTMP 功能研究

    看点: 1.    Nginx 配置信息与使用.  (支持 rtmp与HLS配置) 2.    有ffmpeg 编译与使用,    命令行方式来测试验证客户端使用. 转自:http://blog.cs ...

  9. Nginx之旅系列 - Nginx日志功能 PK Linux内核printk

    题记:Nginx之旅系列是用来记录Nginx从使用到源码学习的点点滴滴,分享学习Nginx的快乐 Nginx 首页: http://nginx.org/ Nginx日志功能 PK Linux内核pri ...

  10. 自动部署Nginx和nfs并架设Nginx集群脚本

    本人经过多次尝试,简单完成了自动部署Nginx和nfs脚本,并且能够自动部署web反向代理集群,下面详细的阐述一下本人的思路.(以下脚本本人处于初学阶段,写的并不是很完善,所以需要后期进行整理和修正, ...

随机推荐

  1. Kurator v0.4.0版本更新4大内容,满足多云环境的复杂需求

    摘要:在最新发布的 v0.4.0 版本中,Kurator 进一步丰富了分布式云原生场景下的应用统一管理能力,以便更好地满足多云环境的复杂需求. 本文分享自华为云社区<Kurator v0.4.0 ...

  2. Unity的Undo:详解解析与实用案例

    Unity Undo详解 在Unity中,Undo是一个非常重要的功能,它可以让开发者在编辑器中进行操作时,随时撤销之前的操作,从而避免不必要的错误.本文将详细介绍Unity Undo实现原理和使用方 ...

  3. 用写代码的方式画图-试下PlantUML吧

    1 序言 所谓一图胜千言,大家平日在工作中编写文档时,往往都需要画各种图来表达中心思想,比如流程图.时序图.UML 图,很多人选择使用 Axure .PrecessOn.Diagrams(darw.i ...

  4. 怎样优雅地增删查改(一):从0开始搭建Volo.Abp项目

    @ 目录 项目介绍 模块化 由框架实现的 需要实现的 创建项目 创建业务模块 配置引用和依赖 配置DbContext 创建实体和Dto 配置AutoMapper 软件系统中数据库或者持久层的基本操作功 ...

  5. NoSuchMethodError: Closure call with mismatched arguments:

    原因:某个方法的参数中,回调函数写的有问题,

  6. 使用C#编写.NET分析器(三)

    译者注 这是在Datadog公司任职的Kevin Gosse大佬使用C#编写.NET分析器的系列文章之一,在国内只有很少很少的人了解和研究.NET分析器,它常被用于APM(应用性能诊断).IDE.诊断 ...

  7. 【WebRtc】获取音视频数据

    首页截图 获取音视频 关键Code 获取摄像头数据 /** * 获取流数据 */ openUserMeida() { var that = this // 判断是否支持获取媒体数据 if (!navi ...

  8. 【Vue】父子组件传值、方法引用

    父子组件值.方法引用 1.值 1.1 父组件获取子组件值 父组件 <template> <div> <button @click="getChildValue& ...

  9. 【阅读笔记】提升example-based SISR七个技巧

    论文信息 [Seven ways to improve example-based single image super resolution]-Radu Timofte, 2016, CVPR 论文 ...

  10. 博客代码托管网站个人体会及感受(GitHub、Coding、Netlity、阿里云弹性web托管)

    GitHub 免费 部署 github上,服务器在国外,访问速度一般,稳定性比较好,网站知名,操作方便,部署简单,域名不需要备案. Coding 免费 coding 支持 PHP + mysql 的动 ...