#!/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. ZIM|一站式接入,打通 RTC 和 IM 组合拳

    从用户信息.用户心跳到用户间私人与聊天室通信,IM 一直是互联网世界中不可或缺的基础建设之一.早在连麦和直播诞生之前,IM 就已是在通讯领域内服役多年的老兵,而随着线上音视频的兴起,IM 不仅没有没落 ...

  2. Python数据分析易错知识点归纳(三):Pandas

    三.pandas 不带括号的基本属性 df.index # 结果是一个Index对象, 可以使用等号重新赋值,如: df.index = ['a', 'b', 'c'] df.columns # 结果 ...

  3. 信奥赛题1001:Hello,World!

    这个题实在是太简单的了,无法比喻,直接付代码! //c++ #include<bits/stdc++.h> using namespace std; int main() { cout&l ...

  4. 列式分布式数据库ClickHouse部署

    简介 Clickhouse是俄罗斯yandex公司2016年开源的用于OLAP的列式数据库. 使用C++语言编写,支持SQL实时查询. OLTP,更强调数据的完整性,行式存储: OLAP,更强调数据处 ...

  5. Cilium系列-14-Cilium NetworkPolicy 简介

    系列文章 Cilium 系列文章 前言 今天我们进入 Cilium 安全相关主题, 介绍 Kubernetes 网络策略以及 CiliumNetworkPolicies 额外支持的内容. 网络策略(N ...

  6. vue 实现 pdf 预览功能

    1 技术背景 1.1 Vue.js 简介和特点 Vue.js 是一种用于构建用户界面的渐进式框架.它具有以下特点: 易学易用:Vue.js 的 API 设计简单直观,使得开发者可以快速上手. 响应式数 ...

  7. ETL之apache hop数据增量同步功能

    ETL增量数据抽取CDC 概念:Change Data Capture,变化的数据捕获,也称:[增量数据抽取](名词解释) CDC是一种实现数据的增量抽取解决方案,是实现[ETL整体解决方案]中的一项 ...

  8. [ABC305C] Snuke the Cookie Picker题解

    题目大意 有一个 \(H\times W\) 的网格,一种有一个矩形,矩形中间有一个点被挖空,求这个点的坐标.(. 表示空白,# 表示矩形内的点) 解析 观察我们可以发现,每一矩形内的个点上下左右至少 ...

  9. gitlab与LDAP 联调

    gitlab整理 目录 gitlab整理 1.安装Gitlab依赖包 2.下载,安装 3.配置,访问域名及邮箱 4.初始化,启动 5.访问,以及邮箱测试 5.1汉化 6.问题总结处理 6.1安装时出现 ...

  10. Journey / Solution Set - 「NOIP-S 2020」「Prob. A-C」

    这种东西怎么写啊... Day 1(好像也没有 Day 2 到了 NK 后发现正好可以进门,于是就什么也没有检查的进去了. 进门前问了一下 LYC 之前问过的一个问题,他说没有头绪,然后就没怎么说话了 ...