Nginx安装与虚拟主机配置shell脚本

今天继续给大家介绍Linux运维相关知识,本文主要内容是Nginx安装与虚拟主机配置shell脚本。

一、NGINX安装

在今天的脚本上,我们开始尝试使用函数和参数,以增强脚本的灵活性和实现脚本的模块化。
我们定义一个NGINX_INSTALL()的函数,主要用于安装NGINX,该函数需要下载NGINX的安装包,将该安装包解压,并进行预编译、编译和安装操作,相关脚本如下所示:

NGINX_INSTALL(){
        wget -c http://nginx.org/download/nginx-1.12.0.tar.gz
        echo "Nginx download OK!"
        yum install -y gcc gcc-c++ openssl-devel pcre-devel pcre
        echo "Nginx Rliance OK!"
        tar xf nginx-1.12.0.tar.gz
        mv nginx-1.12.0 /opt/nginx
        useradd nginx
        echo "Nginx User create OK!"
        cd /opt/nginx
        ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
        make && make install
}

二、NGINX配置

接下来,我们还需要配置NGINX,以实现虚拟注意。定义一个NGINX_CONFIG()的函数,并且在该函数中传输两个参数,第一个参数是NGINX虚拟主机所监听的端口,第二个参数是NGINX虚拟主机的域名。相关脚本如下所示:

NGINX_CONFIG(){
        cd /usr/local/nginx/
        cp -a conf/nginx.conf conf/nginx.conf.bak
        cat >conf/nginx.conf<<EOF
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
         listen       $1;
         server_name  $2;     
         location / {
             root   /data/www/$2/;
             index  index.html index.htm;
         }
    }
}
EOF
mkdir -p /data/www/$2/
touch /data/www/$2/index.html
echo "Nginx VHOSTS" >> /data/www/$2/index.html
}

在上述脚本中,我们直接把NGINX的原有配置文件进行了备份,并且把新的配置文件直接写入到了脚本中。

三、函数调用与启动

最后,我们还要写一段脚本,调用上述两个函数,并且启动NGINX,相关脚本如下所示:

NGINX_INSTALL
NGINX_CONFIG $1 $2
/usr/local/nginx/sbin/nginx

四、脚本展示

我们把上述所有脚本整合到一起,形成完整的脚本,如下所示:

#!/bin/bash
NGINX_INSTALL(){
        wget -c http://nginx.org/download/nginx-1.12.0.tar.gz
        echo "Nginx download OK!"
        yum install -y gcc gcc-c++ openssl-devel pcre-devel pcre
        echo "Nginx Rliance OK!"
        tar xf nginx-1.12.0.tar.gz
        mv nginx-1.12.0 /opt/nginx
        useradd nginx
        echo "Nginx User create OK!"
        cd /opt/nginx
        ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
        make && make install

}
NGINX_CONFIG(){
        cd /usr/local/nginx/
        cp -a conf/nginx.conf conf/nginx.conf.bak
        cat >conf/nginx.conf<<EOF
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
         listen       $1;
         server_name  $2;     
         location / {
             root   /data/www/$2/;
             index  index.html index.htm;
         }
    }
}
EOF
mkdir -p /data/www/$2/
touch /data/www/$2/index.html
echo "Nginx VHOSTS" >> /data/www/$2/index.html
}
NGINX_INSTALL
NGINX_CONFIG $1 $2
/usr/local/nginx/sbin/nginx

Nginx安装与虚拟主机配置shell脚本_第1张图片
Nginx安装与虚拟主机配置shell脚本_第2张图片

五、效果检验

在完成上述脚本后,我们直接执行该脚本,执行命令:

bash nginx_install.sh 81 www.pzz.com

该脚本运行结果如下所示:
Nginx安装与虚拟主机配置shell脚本_第3张图片
从上图可以看出,该脚本运行后,已经开始监听80和81端口。我们在本地hosts文件中,将www.pzz.com重定向到该虚拟机上,然后访问该域名的80和81端口,结果如下所示:
Nginx安装与虚拟主机配置shell脚本_第4张图片
Nginx安装与虚拟主机配置shell脚本_第5张图片
从上图可以看出,该脚本可以成功安装Nginx并且配置虚拟主机!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(服务器运维,nginx,linux,运维,shell,虚拟主机)