企业实战SHELL编程Nginx虚拟主机(从0开始)
SHELL概念
- SHELL是什么?SHELL是Linux内核跟用户之间沟通的桥梁;
- SHELL也是一个命令解释器,用户可以输入命令到SHELL,SHELL将命令传递给Linux内核,内核处理完毕,返回给SHELL,SHELL将返回的结果返给用户终端;
- SHELL是外壳,中间件,外壳有很多的种类,bash、csh、ksh、zsh等;
- SHELL和SHELL编程有什么关系?SHELL是命令解释器,用户和操作系统沟通桥梁,而SHELL编程基于SHELL解释器来实现具体的功能或者需求;
- SHELL命令、SHELL脚本、SHELL编程、SHELL之间解释?
SHELL编程用途
- SHELL编程的目的将重复的工作变成自动化,可以理解为批处理;
- SHELL主要是为了减轻人工的频繁的操作、提高运维工作效率,保证网站稳定、高效的运行;
- 例如需要源码编译LNMP WEB架构,20台都需要编译怎么办?
如何开启Shell编程
- 任何的编程语言,都是从Hello,world;
- SHELL编程其实就是将SHELL命令写入到脚本文件中;
- SHELL编程规范,脚本内容第一行必须以#!开头,其后接SHELL的种类,例如/bin/bash,/bin/sh等;
Nginx源码编译实战
- Nginx是一款开源的WEB服务器,轻量级、高并发的WEB服务软件,也是一款7层负载均衡软件;
- 跟Apache WEB服务器是同类型的软件,用于发布HTML静态页面;
- 源码安装软件步骤,三个步骤,./configure;make;make install
#!/bin/bash
#2017年10月31日21:00:52
#auto install nginx soft
#by author www.jfedu.net
#######################
yum install gcc gcc-c++ glibc make zlib-devel pcre-devel -y
wget -c http://nginx.org/download/nginx-1.12.1.tar.gz
tar -xzf nginx-1.12.1.tar.gz
cd nginx-1.12.1
./configure --prefix=/usr/local/nginx/
make
make install
/usr/local/nginx/sbin/nginx
Nginx_v2.sh内容:
#!/bin/bash
#2017年10月31日21:00:52
#auto install nginx soft
#by author www.jfedu.net
#######################
NGINX_DIR="/usr/local/nginx"
NGINX_VER="$1"
NGINX_SOFT="nginx-${NGINX_VER}.tar.gz"
NGINX_SRC="nginx-${NGINX_VER}"
NGINX_URL="http://nginx.org/download"
NGINX_LIB="gcc gcc-c++ glibc make zlib-devel pcre-devel"
if [ -z $1 ];then
echo -e "\033[32m------------------\033[0m"
echo -e "\033[32mUsage:{sh $0 1.2.3|1.12.1|1.10.1}\033[0m"
exit
fi
yum install $NGINX_LIB -y
wget -c $NGINX_URL/$NGINX_SOFT
tar -xzf $NGINX_SOFT
cd $NGINX_SRC
./configure --prefix=$NGINX_DIR
make
make install
$NGINX_DIR/sbin/nginx
Nginx_v3.sh内容:
#!/bin/bash
#2017年10月31日21:00:52
#auto install nginx soft
#by author www.jfedu.net
#######################
NGINX_DIR="/usr/local/nginx"
NGINX_VER="1.12.1"
NGINX_SOFT="nginx-${NGINX_VER}.tar.gz"
NGINX_SRC="nginx-${NGINX_VER}"
NGINX_URL="http://nginx.org/download"
NGINX_LIB="gcc gcc-c++ glibc make zlib-devel pcre-devel"
yum install $NGINX_LIB -y
wget -c $NGINX_URL/$NGINX_SOFT
tar -xzf $NGINX_SOFT
cd $NGINX_SRC
./configure --prefix=$NGINX_DIR
make
make install
$NGINX_DIR/sbin/nginx
cd $NGINX_DIR/conf
grep -vE "#|^$" nginx.conf>nginx.conf.swp
cp nginx.conf.swp nginx.conf
#for i in `seq 1 13`;do sed -i '$d' nginx.conf;done
sed -i '/server/,$d' nginx.conf
cat>>nginx.conf<<EOF
server {
listen 80;
server_name www.jfjf1.com;
location / {
root html/www.jfjf1.com;
index index.html index.htm;
}
}
server {
listen 80;
server_name www.jfjf2.com;
location / {
root html/www.jfjf2.com;
index index.html index.htm;
}
}
EOF
echo "}" >>nginx.conf
mkdir -p ../html/www.jfjf{1,2}.com
cat>../html/www.jfjf1.com/index.html<<EOF
<h1>Welcome to nginx!</h1>
<hr color=red>
<h1>www.jfjf1.com</h1>
EOF
cat>../html/www.jfjf2.com/index.html<<EOF
<h1>Welcome to nginx!</h1>
<hr color=red>
<h1>www.jfjf2.com</h1>
EOF
/usr/local/nginx/sbin/nginx -s reload #重启nginx服务