Linux下制作Nginx绿色免安装包

2024-04-30 08:26:46 浏览数 (2)

前言

linux下安装nginx比较繁琐,遇到内网部署环境更是麻烦,所以研究了下nginx绿色免安装版的部署包制作,开箱即用,特此记录分享,一下操作在centos8环境下安装,如果需要其他内核系统的安装(Debian/Ubuntu等),请在对应环境虚拟机下安装制作

安装包制作

安装依赖

代码语言:javascript复制
yum install gcc-c   pcre perl git unzip  pcre-devel zlib zlib-devel openssl openssl-devel -y

安装nginx-portable

代码语言:javascript复制
wget https://github.com/nuccch/nginx-portable/archive/master.zip;unzip master.zip
cd nginx-portable-master/

configure修改配置

这步主要为了后续注册为系统服务做准备,如果您只需要获取安装直接命令或脚本启动可跳过

如果不修改,注册为系统服务后会提示logs文件路径无法找到

代码语言:javascript复制
将compile文件中的./configure --prefix=.部分修改为./configure --prefix=/usr/soft/nginx

执行编译

代码语言:javascript复制
bash compile <nginx-version>

例如需要1.25.5版本,则执行语句为bash compile 1.25.5

获取安装包

编译完成后在build目录会生成nginx-1.25.5.tar.gz绿色免安装版,直接解压即可使用,示例命令如下

代码语言:javascript复制
启动: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脚本,脚本内容如下

代码语言:javascript复制
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中

进入目录

代码语言:javascript复制
cd /usr/soft/nginx

脚本授权

代码语言:javascript复制
chmod  x nginx.sh

执行注册

代码语言:javascript复制
source nginx.sh

服务管理

代码语言:javascript复制
启动:systemctl start nginx
查看:systemctl status nginx
停止:systemctl stop nginx
重启:systemctl reload nginx

0 人点赞