Nginx交互式管理脚本--自助添加虚拟主机 推荐
2014-02-12 14:31
871 查看
过完年不止是吃胖了,而且变的懒了!
为配合网站测试,一直在频繁的添加虚拟主机,然后就是cp、修改配置、重启服务!
所幸就写一个Nginx添加虚拟主机的脚本,添加起来方便,再把Nginx的启动关闭添加进来,就省事很多了。
原理:
自动find本机Nginx的目录位置
照例利用while控制语句形成一个交互式的脚本界面
创建独立虚拟主机配置文件,内容为一般配置,利用read将用户需要的配置记录为变量,赋值给配置文件,再在Nginx.conf中includd
以后抽时间再完善智能添加PHP和PATH_INFO(关于PHP的配置可能需要个人修改,其他比如PATH_INFO当然也要自己修改,可以根据自己情况cp公司现有默认配置)
效果:
测试好使!
代码:
为配合网站测试,一直在频繁的添加虚拟主机,然后就是cp、修改配置、重启服务!
所幸就写一个Nginx添加虚拟主机的脚本,添加起来方便,再把Nginx的启动关闭添加进来,就省事很多了。
原理:
自动find本机Nginx的目录位置
照例利用while控制语句形成一个交互式的脚本界面
创建独立虚拟主机配置文件,内容为一般配置,利用read将用户需要的配置记录为变量,赋值给配置文件,再在Nginx.conf中includd
以后抽时间再完善智能添加PHP和PATH_INFO(关于PHP的配置可能需要个人修改,其他比如PATH_INFO当然也要自己修改,可以根据自己情况cp公司现有默认配置)
效果:
测试好使!
代码:
#!/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 多个虚拟主机 no input file specified 推荐
- Nginx设置虚拟主机,添加多站点
- nginx 添加虚拟主机 支持php 伪静态
- WEB服务器-Nginx之虚拟主机、日志、认证及优化 推荐
- php管理nginx虚拟主机shell脚本实例
- 通过脚本案例学习shell(三) --- 通过交互式脚本自动创建Apache虚拟主机 推荐
- nginx添加和删除虚拟主机
- NGINX 添加 虚拟主机 VIRTUAL HOST
- Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试 推荐
- 脚本添加nagios监控主机(带分析) 推荐
- shell脚本添加和删除apahce虚拟主机并判断是否正常
- Nginx添加虚拟主机
- nginx生产环境常用功能include 、虚拟主机别名、rewrite、nginx status详细解析 推荐
- linux上nginx如何添加多个虚拟主机配置
- 快速添加nginx的虚拟主机
- 生产环境下的nginx.conf配置文件(多虚拟主机) 推荐
- 在Puppet中用ERB模板来自动配置Nginx虚拟主机 推荐
- nginx的高级配置(1)——为某个虚拟主机添加用户验证
- Nginx实战基础篇三 Nginx上虚拟主机的实现过程 推荐
- 推荐没有虚拟主机的小巧的Mysql数据库备份脚本(PHP)