阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx交互式管理脚本–自助添加虚拟主机

188次阅读
没有评论

共计 3521 个字符,预计需要花费 9 分钟才能阅读完成。

为配合网站测试,一直在频繁的添加虚拟主机,然后就是 cp、修改配置、重启服务!
所幸就写一个 Nginx 添加虚拟主机的脚本,添加起来方便,再把 Nginx 的启动关闭添加进来,就省事很多了。

原理:
自动 find 本机 Nginx 的目录位置
照例利用 while 控制语句形成一个交互式的脚本界面
创建独立虚拟主机配置文件,内容为一般配置,利用 read 将用户需要的配置记录为变量,赋值给配置文件,再在 Nginx.conf 中 includd
以后抽时间再完善智能添加 PHP 和 PATH_INFO(关于 PHP 的配置可能需要个人修改,其他比如 PATH_INFO 当然也要自己修改,可以根据自己情况 cp 公司现有默认配置)

效果:

Nginx 交互式管理脚本 -- 自助添加虚拟主机

Nginx 交互式管理脚本 -- 自助添加虚拟主机

测试好使!

Nginx 交互式管理脚本 -- 自助添加虚拟主机

代码:
#!/bin/bash
nginxdir=`find / -name nginx|grep nginx/sbin/nginx|awk -F sbin ‘{print $1}’`
while true
do
clear
# menu
echo ”
本机 Nginx 路径为: $nginxdir”
echo ”
****************** Nginx tool *******************
*                                              *”
echo “* (1)  启动 Nginx                          *”
echo “* (2)  关闭 Nginx                          *”
echo “* (3)  重启 Nginx                          *”
echo “* (4)  查看 Nginx 运行进程数                *”
echo “* (5)  查看 TCP 连接状态                    *”
echo “* (10) 添加虚拟主机                      *”
echo “* (0)  退出本程序                        *”
echo “*                                        *
*************************************************”
read -p  “ 请输入对应数字: ” caozuo
case $caozuo in
# start
1) if [-z “`ps ax|grep nginx|grep -v grep|grep -v nginx.sh|awk ‘{print $1}’`” ];
        then
        $nginxdir/sbin/nginx
        sleep 1
        if [-z “`ps ax|grep nginx|grep -v grep|grep -v nginx.sh|awk ‘{print $1}’`” ];
                then
                read -p “Nginx 启动失败!”
                else
                read -p “Nginx 启动完成!回车继续!”
        fi
        else
        read -p “Nginx is Running! 回车继续!”
    fi
;;
#stop
2) killall nginx
    sleep 1
    if [-z “`ps ax|grep nginx|grep -v grep|grep -v nginx.sh|awk ‘{print $1}’`” ];
        then
        read -p “Nginx 关闭完成!回车继续!”
        else
        read -p “Nginx 关闭失败!回车继续!”
    fi
;;
#restart
3) if [-z “`ps ax|grep nginx|grep -v grep|grep -v nginx.sh|awk ‘{print $1}’`” ];
        then
        $nginxdir/sbin/nginx
        read -p “Nginx 启动完成!回车继续!”
        else
        killall nginx
        sleep 1
        $nginxdir/sbin/nginx
        read -p “Nginx 重启完成!回车继续!”
    fi
;;
#process
4) read -p “Nginx 运行进程数:`ps -ef|grep nginx|grep -v nginx.sh|grep -v grep|wc -l`”
;;
#TCP
5) read -p “TCP 连接状态:
`netstat -n | awk ‘/^tcp/ {++state[$NF]} END {for(key in state) print key,”t”,state[key]}’`”
;;
#vhost
10)
        while true
        do
        clear
        read -p “ 请输入要添加的虚拟主机完整域名: ” vhost
        read -p “ 请输入该域名使用的端口: ” prot
        read -p “ 请输入域名对应的 root 目录: ” hostdir
        read -p “ 请输入访问日志目录: ” logdir
echo ”
################### 确认以下信息 ########################

read -p “Nginx 的目录为:        $nginxdir
要添加的虚拟主机为:    $vhost
该域名对应的端口为:    $prot
域名对应的 root 目录为:  $hostdir
访问日志文件为:        $logdir/$vhost.log
#########################################################
[回车继续,如有误请输入 0 返回]:” queren2
                case $queren2 in
                0) break
                ;;
                *)
                mkdir $nginxdir/conf/vhost
                touch $nginxdir/conf/vhost/$vhost.conf
                sed -i “/include * mime.types/ a \include $nginxdir\/conf\/vhost\/$vhost.conf;” $nginxdir/conf/nginx.conf
echo ‘server
  {
  listen      ‘$prot’;
  server_name  ‘$vhost’;
  index index.php index.html index.htm;
  root  ‘$hostdir’;
location / {
        if (!-e $request_filename){
          rewrite ^(.*)$ /index.php?s=/$1 last;
          rewrite ^(.*)$ /index.php/$1 last;
        }
        }
    location ~ .*\.(php|php5)?$
    {
          fastcgi_pass  127.0.0.1:9000;
          fastcgi_index index.php;
#          include fcgi.conf;
        }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
      expires      30d;
    }
    location ~ .*\.(js|css)?$
    {
      expires      1h;
    }
access_log ‘$logdir/$vhost.log’;
}’ >>$nginxdir/conf/vhost/$vhost.conf
read -p “ 添加完成, 需重启 Nginx 生效, 回车返回!”
break
                ;;
                esac
        done
;;
0) break
;;
*) read -p “ 请输入对应数字! 或者 Ctrl+ C 退出! 回车继续!”
;;
esac
done

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

相关阅读

CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3521字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中