今天继续给大家介绍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
五、效果检验
在完成上述脚本后,我们直接执行该脚本,执行命令:
bash nginx_install.sh 81 www.pzz.com
该脚本运行结果如下所示:
从上图可以看出,该脚本运行后,已经开始监听80和81端口。我们在本地hosts文件中,将www.pzz.com重定向到该虚拟机上,然后访问该域名的80和81端口,结果如下所示:
从上图可以看出,该脚本可以成功安装Nginx并且配置虚拟主机!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200