SHELL 自动部署Nginx并设置虚拟主机

楓城浪子原创,转载请标明出处!

更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com

微信bh19890922

QQ445718526、490425557

#!/bin/bash
#2017-8-29 16:07:07
#by fengchenglangzi
#auto install nginx and vhost
###################
#定义变量
SOFT_DIR="/usr/local/src"
NGINX_DIR="/usr/local/nginx"
NGINX_SOFT="nginx-1.12.0.tar.gz"
NGINX_SOFT_NAME=$(echo $NGINX_SOFT|awk -F".tar" ‘{print $1}‘)
YUM="yum install -y"
PCRE_GCC="gcc gcc-c++ pcre pcre-devel openssl-devel"
###################
#安装Nginx
function Install_Nginx () {
        if [ ! -d $NGINX_DIR ];then
                $YUM $PCRE_GCC
                cd $SOFT_DIR
                if [ ! -d $SOFT_DIR/$NGINX_SOFT_NAME ];then
                        wget -c http://nginx.org/download/$NGINX_SOFT
                        tar -zxf $NGINX_SOFT
                fi
                cd $NGINX_SOFT_NAME
                sed -i -e ‘s/1.12.0//g‘ -e ‘s/nginx\//JWS/g‘ -e ‘s/"NGINX"/"JWS"/g‘ src/core/nginx.h
                useradd nginx;usermod -s /sbin/nologin nginx
                ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module  --with-http_ssl_module && make -j8 && make install -j8
                if [ $? -eq 0 ];then
                        echo "Nginx安装完毕!!!"
                       /usr/local/nginx/sbin/nginx
                fi
        else
                echo "Nginx已经安装!!!"

        fi
}
####################
#创建虚拟主机
function Create_Vhost () {
        if [ ! -d $NGINX_DIR ];then
                echo "当前系统未安装Nginx,请先安装Nginx!!!"
        else
                read -p "请输入新的虚拟主机域名:" input
                DOMAIN_NAME=($(echo $input))
                i=0
                while [[ $i < ${#DOMAIN_NAME[@]} ]]
                do
                if [ ! -d $NGINX_DIR/conf/vhost/${DOMAIN_NAME[i]} ];then
                mkdir -p $NGINX_DIR/conf/vhost/${DOMAIN_NAME[i]}/{logs,html}
                touch $NGINX_DIR/conf/vhost/${DOMAIN_NAME[i]}/nginx.conf
                sed -i "/include * mime.types/a\include $NGINX_DIR\/conf\/vhost\/${DOMAIN_NAME[i]}/nginx.conf;" $NGINX_DIR/conf/nginx.conf
cat >> $NGINX_DIR/conf/vhost/${DOMAIN_NAME[i]}/nginx.conf << EOF
server {
        listen       80;
        server_name  ${DOMAIN_NAME[i]};
        access_log  $NGINX_DIR/conf/vhost/${DOMAIN_NAME[i]}/logs/access.log;
        location / {
            root   $NGINX_DIR/conf/vhost/${DOMAIN_NAME[i]}/html/;
            index  index.html index.htm;
        }
}
EOF
cat >> $NGINX_DIR/conf/vhost/${DOMAIN_NAME[i]}/html/index.html << EOF
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>${DOMAIN_NAME[i]}</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
EOF
                echo "${DOMAIN_NAME[i]}创建完毕!!!"
                else
                        echo "${DOMAIN_NAME[i]}已经创建,无需再次创建!!!"
                fi
let "i++"
                done
        fi
read -p "Nginx虚拟主机创建完毕,请确认是否重启Nginx(y/n):" yn
if [ $yn == "y" ];then
        /usr/local/nginx/sbin/nginx -s reload
elif [ $yn == "n" ];then
        break
else
        echo "请正确输入选项(y/n)!!!"
fi
}
PS3="请选择所需服务:"
select i in INSTALL_NGINX CREATE_VHOST RELOAD_NGINX QUIT
do
case $i in
        INSTALL_NGINX)
                Install_Nginx
        ;;
        CREATE_VHOST)
                Create_Vhost
        ;;
        RELOAD_NGINX)
                 /usr/local/nginx/sbin/nginx -s reload
        ;;
        QUIT)
                exit
        ;;
        *)
        echo "Usage: $0 {1|2|3|4}"
esac
done
时间: 2024-11-09 10:50:34

SHELL 自动部署Nginx并设置虚拟主机的相关文章

Centos8 Yum安装nginx并设置虚拟主机

nginx是最近非常火的web服务器,这次CentOS8也在yum官方源中新增了nginx 1.14 与Apache相比可以承担更大的并发,并占用更少的内存 CentOS8使用了新一代的yum,使用dnf作为命令(原来的yum以dnf的软链接形式存在) 安装只需要一句 dnf install nginx -y 如果出错检查检查一下网络和yum源,如何更换yum源到阿里源 下面设置两个虚拟主机 虚拟主机可以让一个web服务器服务多个网站,每个网站可以有不同的设置,不同的语言,并且有独立的日志 这里

Nginx 网站服务——虚拟主机配置

第1章 Nginx 网站服务 1.1 web网站服务介绍: 1.1.1 提供静态服务的软件 Apache:这是中小型Web服务的主流,Web服务器中的老大哥. Nginx:大型网站Web服务的主流,曾经Web服务器中的初生牛犊,现已长大. Nginx的分支Tengine(http://tengine.taobao.org/)目前也在飞速发展. Lighttpd:这是一个不温不火的优秀Web软件,社区不活跃,静态解析效率很高.在Nginx流行前,它是大并发静态业务的首选,国内百度贴吧.豆瓣等众多网

Linux下的XAMPP基本配置技巧(设置虚拟主机、添加FTP账户等)

Linux下的XAMPP基本配置技巧(设置虚拟主机.添加FTP账户等) xampp安装好之后就只有一个默认站点及一个默认nobody的ftp账户,这显然不符合我们平时的需求了,那么下面就来讲一下如何设置并管理多个虚拟主机及ftp账户了,至于xampp的安装不在此讨论范围,读者可自行参阅官网的相关说明. 1.首先讲一下ftp账户的配置: xampp采用的是proftpd服务端,这个不像我们Win环境下常用的Serv-U,用户帐户不是在服务端工具里面进行配置,而是在linux系统帐户里面配置的.因此

自动部署Nginx和nfs并架设Nginx集群脚本

本人经过多次尝试,简单完成了自动部署Nginx和nfs脚本,并且能够自动部署web反向代理集群,下面详细的阐述一下本人的思路.(以下脚本本人处于初学阶段,写的并不是很完善,所以需要后期进行整理和修正,请高手能够多多指教.) 本脚本需要注意的是: 1.这是针对centOS6.8,32位操作系统写的脚本文件,如果想在cenOS7中运行,就需要有些改动 2.这个脚本需要先安装代理服务器部分,再安装反向代理服务器,因为涉及到共享文件夹挂载的问题,所以需要有先后顺序: 3.今后本人会对此脚本进行更新和完善

nginx安装,虚拟主机,用户认证及域名重定向

nginx安装 cd /usr/local/src/ wget http://nginx.org/download/nginx-1.14.0.tar.gz tar zxfv nginx-1.14.0.tar.gz cd nginx-1.14.0/ ./configure --prefix=/usr/local/nginx make && make install 启动文件配置vim /etc/init.d/nginx,参考下面 #!/bin/bash # chkconfig: - 30 2

关于wamp5中(apache)设置虚拟主机

找了很多文章,但是很多对于最新的apache都已经过时无法生效了. http://blog.csdn.net/yuluo727282752/article/details/6944359 这篇文章写得非常好,记录下来,下面为全文引用. 完成一个项目,总要进行一些测试,但是在自己本上测试或许有一些自己想不到的BUG出现,于是配置一个虚拟主机可以为自己更方便的解决BUG,也可以方便演示时大家测试 以下是我在网上寻到的一些方法,分享给大家 开发环境:WAMP 实例一,Apaceh配置localhost

AppServ设置虚拟主机 及域名连接

1: 安装好AppServ2.5.9软件,官网是:http://www.appservnetwork.com/ ,2.59下载地址是:http://nchc.dl.sourceforge.net/sourceforge/appserv/appserv-win32-2.5.9.exe 是英文软件,但是安装时可以选择gbk-gb2312的编码. 2: 修改本机的hosts文件,如下: C:\WINDOWS\system32\drivers\etc\hosts 示例: 127.0.0.1       

Windows上Apache设置虚拟主机(xampp为例)

每次设置虚拟域名都要到网上搜教程,这次索性记录下来,以后靠自己. 我们知道,本地web开发访问的ip地址一般为127.0.0.1,默认映射为localhost这个域名,一般访问形式为localhost/filename. 现在我们的根目录(xampp为htdocs,wamp和lamp是www)下有多个工程,假设有工程a和工程b ,每次访问都要手动输入a,b目录,目录比较深时则要输入多级目录结构(比如我建立了一个测试工程test,里面又包含其他工程),这样不仅烦而且不美观,所以设置虚拟主机就是开发

linux上nginx上配置虚拟主机的相关配置

1.配置主配置: nginx/conf/nginx.conf 2.虚拟主机配置:nginx/conf/extra/learn.weixin.com.conf 配置完后,重启服务器!