欢迎您,零度科技专业海外服务器租用
公司电话: 24小时电话: 

当前位置:首页>新闻动态>精品文摘

目录导航

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

美国SK机房 添加于 2014-05-22  

精品文摘

原理:

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

效果:

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


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


测试好使!

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

代码:

#!/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

 

本文出自 “Tuesday” 博客,请务必保留此出处http://cuimk.blog.51cto.com/6649029/1358420

零度科技原文链接:http://www.ldisp.com/a/article/2014/2763.shtml

上一篇:iptables交互配置脚本【Linux运维之道之脚本案例】
下一篇:centos6 重置root密码

 
了解零度?

零度科技主营全球服务器租用,如果您有服务器租用需求请联系

海外服务器租用

推荐香港、美国、韩国。提供站群服务器、高防服务器租用

海外特价服务器

关注零度特价服务器频道,了解全球特价服务器。

0

业务咨询

    技术服务

      特价活动
        全站搜索
        热门搜索:
        会员
        0通知
        客服
        0特价
        搜索
        TOP
        香港高防服务器,远程桌面,韩国服务器,nginx,反向代理