前言
linux下安装nginx比较繁琐,遇到内网部署环境更是麻烦,所以研究了下nginx绿色免安装版的部署包制作,开箱即用,特此记录分享,一下操作在centos8环境下安装,如果需要其他内核系统的安装(Debian/Ubuntu等),请在对应环境虚拟机下安装制作
安装包制作
安装依赖
yum install gcc-c++ pcre perl git unzip pcre-devel zlib zlib-devel openssl openssl-devel -y
安装nginx-portable
wget https://github.com/nuccch/nginx-portable/archive/master.zip;unzip master.zip
cd nginx-portable-master/
configure修改配置
这步主要为了后续注册为系统服务做准备,如果您只需要获取安装直接命令或脚本启动可跳过
如果不修改,注册为系统服务后会提示logs文件路径无法找到
将compile文件中的./configure --prefix=.部分修改为./configure --prefix=/usr/soft/nginx
执行编译
bash compile <nginx-version>
例如需要1.25.5版本,则执行语句为bash compile 1.25.5
获取安装包
编译完成后在build目录会生成nginx-1.25.5.tar.gz绿色免安装版,直接解压即可使用,示例命令如下
启动:cd /nginx/sbin && ./nginx
停止:./nginx -s stop
重启:./nginx -s reload
检查配置正确性:./nginx -t
查看Nginx版本信息:./nginx -v
脚本注册服务
脚本制作
将nginx-1.25.5.tar.gz中的内容解压,获取到sbin目录同级的所有内容重新打包成nginx-green.tar压缩文件
可使用7-Zip压缩
nginx-green.tar同级目录创建nginx.sh脚本,脚本内容如下
echo "start install"
cd /usr/soft/nginx
echo "in unzip" && tar -xvf nginx-green.tar && echo "unzip success"
cat > /etc/systemd/system/nginx.service <<EOF
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target
[Service]
Type=forking
ExecStart=/usr/soft/nginx/sbin/nginx -c /usr/soft/nginx/conf/nginx.conf
ExecStop=/usr/soft/nginx/sbin/nginx -s stop
ExecReload=/usr/soft/nginx/sbin/nginx -s reload
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
echo "create system service success"
systemctl daemon-reload
echo "reload system service setting success"
systemctl enable nginx
echo "setting nginx startup success"
systemctl start nginx
echo "start nginx success"
脚本使用
服务器创建/usr/soft/nginx目录
把nginx-green.tar和nginx.sh拷贝到/usr/soft/nginx中
进入目录
cd /usr/soft/nginx
脚本授权
chmod +x nginx.sh
执行注册
source nginx.sh
服务管理
启动:systemctl start nginx
查看:systemctl status nginx
停止:systemctl stop nginx
重启:systemctl reload nginx