脚本功能介绍
该脚本功能为自动化安装nginx,并且使nginx支持ssl协议(就是可以反向代理到https开头网站)以及systemctl命令来进行调用
使用注意事项
使用该脚本请确保自己本机的网络畅通、yum源没有问题
推荐自己先去http://nginx.org/en/download.html网站上下载nginx的tar包,不下也没关系,脚本里写了去网站上下载的功能(下到一半卡住概不负责),接下来上代码。
代码
#!/bin/bash
#安装nginx,并使其支持https与systemctl命令的调用
#请在网络没问题与yum源正常的情况下使用该脚本,不然会出现问题
#安装相关依赖
yum -y install prce-devel zlib-devel gcc openssl openssl-devel wget
if [ $? -eq 0 ];then
echo "----- 成功安装相关依赖------"
else
echo "----- 安装相关依赖失败,脚本退出 ------"
exit 1
fi
#下载nginx并解压
if [ -f "/root/nginx-1.18.0.tar.gz" ];then
tar -zxvf nginx-1.18.0.tar.gz
echo "----- nginx压缩包已存在并成功解压 ------"
else
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -zxvf nginx-1.18.0.tar.gz
echo "----- nginx压缩包下载成功并正确解压 ------"
fi
#进行nginx的安装
cd nginx-1.18.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make && make install
#使nginx支持systemctl命令来进行启动
echo "[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target" > /lib/systemd/system/nginx.service
#检查nginx.service文件是否存在
if [ -f "/lib/systemd/system/nginx.service" ];then
echo "----- nginx.service存在,已成功写入信息 -----"
else
echo "----- nginx.service不存在,支持systemctl失败 ------"
exit 1
fi
后记
写这个脚本的原因是因为自己在尝试反代https网站的时候出现问题,百度后解决问题还需要重新进行编译与覆盖,nginx的安装还需要很多的依赖,所以就写个自动化脚本自己解决了。
并且感觉每次nginx的启动都要cd到目录下,比较麻烦,就让他直接支持常用的systemctl命令了。
本人接触linux和shell脚本并没有多久,如果有更好的意见欢迎大佬在评论区提出
作者:鱼王
代码作者:鱼王、落霞