新闻动态

shell脚本多实例部署nginx的详细教程

发布日期:2022-01-28 15:47 | 文章来源:源码之家

1. 创建一个目录,用来存放脚本和安装包

[root@localhost nginx]# tree
.
├── install.sh
└── packages
 └── nginx-1.20.1.tar.gz
1 directory, 2 files
[root@localhost nginx]# 

2. 下载好对应的安装包

[root@localhost packages]# wget https://nginx.org/download/nginx-1.20.1.tar.gz
[root@localhost packages]# ls
nginx-1.20.1.tar.gz
[root@localhost packages]# 

3. 编写脚本

[root@localhost nginx]# cat install.sh 
#!/bin/bash
log_dir=/var/log
install_dir=/usr/local
id nginx &>/dev/null
if [ $? -ne 0 ];then
 useradd -r -M -s /sbin/nologin nginx
fi
yum -y install pcre-devel pcre gcc gcc-c++ openssl-devel zlib zlib-devel make vim wget openssl openssl-devel gd-devel
if [ ! -d $log_dir/nginx ];then
 mkdir -p $log_dir/nginx
 chown -R nginx.nginx $log_dir/nginx
fi

if [ ! -d $install_dir/nginx-1.20.1 ];then
 tar xf packages/nginx-1.20.1.tar.gz -C $install_dir
fi
cd $install_dir/nginx-1.20.1
if [ ! -d $install_dir/nginx ];then
 ./configure --prefix=$install_dir/nginx \
  --user=nginx \
  --group=nginx \
  --with-debug \
  --with-http_ssl_module \
  --with-http_realip_module \
  --with-http_image_filter_module \
  --with-http_gunzip_module \
  --with-http_gzip_static_module \
  --with-http_stub_status_module \
  --http-log-path=/var/log/nginx/access.log \
  --error-log-path=/var/log/nginx/error.log
 make && make install
fi
echo "export PATH=$install_dir/nginx/sbin:$PATH" > /etc/profile.d/nginx.sh
cat > /usr/lib/systemd/system/nginx.service <<EOF
[Unit]
Description=Nginx server daemon
After=network.target 
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx 
ExecStop=/usr/local/nginx/sbin/nginx -s quit
ExecReload=/bin/kill -HUP \$MAINPID
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now nginx.service

[root@localhost nginx]# 

4. 验证效果

[root@localhost nginx]# bash -x install.sh 
+ log_dir=/var/log
+ install_dir=/usr/local
+ id nginx
+ '[' 0 -ne 0 ']'
+ yum -y install pcre-devel pcre gcc gcc-c++ openssl-devel zlib zlib-devel make vim wget openssl openssl-devel gd-devel
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
上次元数据过期检查:1:03:20 前,执行于 2021年10月24日 星期日 20时57分26秒。
软件包 pcre-devel-8.42-4.el8.x86_64 已安装。
软件包 pcre-8.42-4.el8.x86_64 已安装。
软件包 gcc-8.4.1-1.el8.x86_64 已安装。
软件包 gcc-c++-8.4.1-1.el8.x86_64 已安装。
软件包 openssl-devel-1:1.1.1g-15.el8_3.x86_64 已安装。
软件包 zlib-1.2.11-17.el8.x86_64 已安装。
软件包 zlib-devel-1.2.11-17.el8.x86_64 已安装。
软件包 make-1:4.2.1-10.el8.x86_64 已安装。
软件包 vim-enhanced-2:8.0.1763-15.el8.x86_64 已安装。
软件包 wget-1.19.5-10.el8.x86_64 已安装。
软件包 openssl-1:1.1.1g-15.el8_3.x86_64 已安装。
软件包 gd-devel-2.2.5-7.el8.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
+ '[' '!' -d /var/log/nginx ']'
+ '[' '!' -d /usr/local/nginx-1.20.1 ']'
+ cd /usr/local/nginx-1.20.1
+ '[' '!' -d /usr/local/nginx ']'
+ echo 'export PATH=/usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin'
+ cat
+ systemctl daemon-reload
+ systemctl enable --now nginx.service
[root@localhost nginx]# 
[root@localhost nginx]# ss -antl
StateRecv-Q  Send-QLocal Address:Port  Peer Address:Port  
LISTEN  0 128  0.0.0.0:80  0.0.0.0:*  
LISTEN  0 128  0.0.0.0:22  0.0.0.0:*  
LISTEN  0 128  [::]:22  [::]:*  
[root@localhost nginx]# 

到此这篇关于shell脚本多实例部署nginx的详细教程的文章就介绍到这了,更多相关shell脚本部署nginx内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

海外稳定服务器

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部