目录
点击下面标题可以更快的浏览呕
一、背景
我们在实际生产环境中,往往会使用nginx作为代理,但是如果一次性我们要部署很多台nginx,并且要求部署环境一致,这时候如果我们手动去部署安装会很慢很麻烦,这时候我们就可以使用脚本快速进行部署
二、安装说明
此脚本是自定义版本安装,也就是说可以安装你想安装的指定版本,当然你也可以在脚本中扩展你想要的版本,自定义你的下载和安装路径。自定义你自己需要的模块。
三、部署脚本如下:
#!/bin/bash
# by 耳边私语者!
#这是一个nginx一键部署脚本
####################################
APP11=nginx
DOWNLOAD_DIR=/data01/
INSTALL_NGINX_PATH=/data01/nginx
CONFIG_OPTIONS="--prefix=${INSTALL_NGINX_PATH} \
--with-http_stub_status_module \
--with-http_ssl_module"
# 源码安装nginx:
nginx_install() {
# nginx的安装版本:
NGINX_LIST=(1.16.0 1.18.0 1.20.0 1.20.1 1.21.1 1.21.2 11.21.3 1.21.4 1.21.5 1.21.6 1.22.0 1.23.0 1.23.4 1.24.0 1.25.0 1.25.2)
if [ -d ${INSTALL_NGINX_PATH} ];then
echo -e "\t在\033[1;31m${INSTALL_NGINX_PATH%/${APP1}}\033[0m目录下是否已安装${APP1}服务!请核实!"
else
echo -e "请输入${APP1}版本号:例如:${NGINX_LIST[@]}\033[0;31m,推荐使用1.18.0版本\033[0m。"
read -p "请参考上面的格式输入${APP1}版本号:" NGINX_VERSION
# 安装依赖:
[[ -n ${NGINX_VERSION} ]] && {\
echo -e "\t\033[0;36m正在安装${APP1}-${NGINX_VERSION},请稍等...\033[0m"
yum install wget pcre-devel zlib-devel openssl openssl-devel -y >/dev/null && \
wget -c -P "${DOWNLOAD_DIR}" http://nginx.org/download/${APP1}-${NGINX_VERSION}.tar.gz
if [[ $? -ne 0 ]];then
echo -e "\t\033[0;31m ${APP1}-${NGINX_VERSION}下载失败!请检查网络是否正常 or ${APP1}版本是否存在!\033[0m"
else
cd "$DOWNLOAD_DIR"
tar xf ${APP1}-${NGINX_VERSION}.tar.gz
cd ${APP1}-${NGINX_VERSION}
./configure ${CONFIG_OPTIONS} && make && make install && {\
echo -e "\t\033[1;32m-----------------------------------------------------------------"
echo -e "\t| \t\t${APP1}-${NGINX_VERSION} 部署成功!\t\t\t\t|"
echo -e "\t| ${APP1}的默认安装目录路径:`printf '%-37s' ${INSTALL_NGINX_PATH}`|"
echo -e "\t| ${APP1}的默认配置文件路径:`printf '%-37s' ${INSTALL_NGINX_PATH}/conf/nginx.conf`|"
echo -e "\t| ${APP1}的默认发布目录路径:`printf '%-37s' ${INSTALL_NGINX_PATH}/html`|"
echo -e "\t-----------------------------------------------------------------\033[0m";} || \
echo -e "\033[0;31m ${APP1}-${NGINX_VERSION} 安装失败!\033[0m"
fi
} || \
echo -e "\t\033[0;32m你还没有输入${APP1}版本!\033[0m"
fi
}
nginx_install
1、错误安装示范
未输入nginx版
[root@node2 script]# ./nginx_install.sh
请输入nginx版本号:例如:1.16.0 1.18.0 1.20.0 1.20.1 1.21.1 1.21.2 11.21.3 1.21.4 1.21.5 1.21.6 1.22.0 1.23.0 1.23.4 1.24.0 1.25.0 1.25.2,推荐使用1.18.0版本。
请参考上面的格式输入nginx版本号:
你还没有输入nginx版本!
nginx版本输入错误
[root@node2 script]# ./nginx_install.sh
请输入nginx版本号:例如:1.16.0 1.18.0 1.20.0 1.20.1 1.21.1 1.21.2 11.21.3 1.21.4 1.21.5 1.21.6 1.22.0 1.23.0 1.23.4 1.24.0 1.25.0 1.25.2,推荐使用1.18.0版本。
请参考上面的格式输入nginx版本号:1.15.^[[D0^[[D
正在安装nginx-1.15,请稍等...
警告:HTTP 不支持通配符。
--2023-10-18 09:36:51-- http://nginx.org/download/nginx-1.15.%1B[D0%1B[D.tar.gz
正在解析主机 nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5702::6, ...
正在连接 nginx.org (nginx.org)|52.58.199.22|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 404 Not Found
2023-10-18 09:36:51 错误 404:Not Found。
nginx-1.15下载失败!请检查网络是否正常 or nginx版本是否存在!
2、安装成功示范
输入正确版本号敲回车 等待安装结束
[root@node2 script]# ./nginx_install.sh
请输入nginx版本号:例如:1.16.0 1.18.0 1.20.0 1.20.1 1.21.1 1.21.2 11.21.3 1.21.4 1.21.5 1.21.6 1.22.0 1.23.0 1.23.4 1.24.0 1.25.0 1.25.2,推荐使用1.18.0版本。
请参考上面的格式输入nginx版本号:1.22.0
安装结束截图
进入nginx目录启动nginx
cd /data01/nginx/sbin
./nginx
查看nginx端口
浏览器访问验证
http://192.168.12.16:80
到此nginx一键部署成功