Nginx-多功能脚本
#!/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-多功能脚本的更多相关文章
- linux shell:nginx日志切割脚本
需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名 简要命令: mv /usr/local/tengine/logs/access.l ...
- Nginx实现负载均衡&Nginx缓存功能
一.Nginx是什么 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambl ...
- Nginx常用功能配置一
Nginx常用功能配置 参数include配置 说明:如果日常工作中server标签存在太多,可以采用include配置模式,Nginx的主配置文件包含的所有虚拟主机的子配置文件会统一放入extra目 ...
- 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 ...
- Nginx日志分析脚本
目录 一.简介 二.脚本 一.简介 运维工作是一个比较复杂的工作,有时候面对上万条的日志,如何作分析?难道一条条的分析? 这估计看两眼就要打哈欠了吧?聪明的人会选择脚本,这就是为什么现在提倡自动化运维 ...
- mysql 自动备份和nginx自动安装脚本
一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...
- 关于mysql和Apache以及nginx的监控脚本怎么写会比较好的记录
最近,自己业务进行上线,上线后,需要考虑的是对各种服务进行监控,包括(httpd服务,mysqld服务等),现在想以mysqld服务为例总结下那种方式的脚本最为专业和合理: (1).根据mysql的端 ...
- 转:Nginx RTMP 功能研究
看点: 1. Nginx 配置信息与使用. (支持 rtmp与HLS配置) 2. 有ffmpeg 编译与使用, 命令行方式来测试验证客户端使用. 转自:http://blog.cs ...
- Nginx之旅系列 - Nginx日志功能 PK Linux内核printk
题记:Nginx之旅系列是用来记录Nginx从使用到源码学习的点点滴滴,分享学习Nginx的快乐 Nginx 首页: http://nginx.org/ Nginx日志功能 PK Linux内核pri ...
- 自动部署Nginx和nfs并架设Nginx集群脚本
本人经过多次尝试,简单完成了自动部署Nginx和nfs脚本,并且能够自动部署web反向代理集群,下面详细的阐述一下本人的思路.(以下脚本本人处于初学阶段,写的并不是很完善,所以需要后期进行整理和修正, ...
随机推荐
- C# 12新预览功能介绍
Visual Studio 17.7 Preview 3和.NET 8 Preview 6延续了C# 12的发展.该预览版包含的功能旨在为未来的性能增强奠定基础.对内联数组的轻松访问将允许库在更多地方 ...
- MASABlazor在移动端点击保持出现悬停样式
提出问题 最近在学习MAUIBlazor,用的MASA Blazor,发现在移动端(触屏设备)上,点击会一直显示悬停样式,如下图所示,简单研究了一下,发现这是移动端的通病. 解决问题 MASABlaz ...
- python添加水印
# coding:utf-8 from PIL import Image, ImageDraw, ImageFont def add_text_to_image(image, text): font ...
- ubuntu安装msf签名认证失败
添加命令 apt-get --allow-unauthenticated upgrade 来允许未认证签名软件安装,但是可能有恶意软件安装进来,可以使用 sudo apt-key adv --keys ...
- Django:django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not supported.
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/' ...
- Crawpy - 一款python写的网站目录扫描工具
国外网站看到的. 简贴一下谷歌翻译的介绍 是什么让这个工具与其他工具不同: 它被写入异步工作,允许达到最大限制.所以它非常快. 校准模式,自行应用过滤器 有一堆标志可以帮助你详细地模糊 给定状态代码和 ...
- 【技术积累】Docker部署笔记
服务器环境搭建 nacos镜像 使用宝塔Docker管理器直接拉起nacos环境并运行 注意:在同一台服务器中,nacos只对内网才能注册,图中172.17.0.2是内网地址,在多台服务器中需要跨ip ...
- 9、Spring之代理模式
9.1.环境搭建 9.1.1.创建module 9.1.2.选择maven 9.1.3.设置module名称和路径 9.1.4.module初始状态 9.1.5.配置打包方式和依赖 <?xml ...
- Linux 内核 ASoC DMA 引擎驱动程序
Linux 内核 ASoC 框架,在概念上将嵌入式音频系统拆分为多个可复用的组件驱动程序,包括 Codec 类驱动程序.平台类驱动程序和机器类驱动程序.在实现上,机器类驱动程序用 struct snd ...
- 《Kali渗透基础》14. 无线渗透(四)
@ 目录 1:相关工具 1.1:Aircrack-ng 1.1.1:airmon-ng 1.1.2:airodump-ng 1.1.3:aireplay-ng 1.1.4:airolib-ng 1.1 ...