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

 更新时间:2021-11-15 06:37:19   作者:佚名   我要评论(0)

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


[root@localhost nginx]# tree
.
├── install.sh
└── packages
└── nginx-1.20.1.ta

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
State            Recv-Q           Send-Q                     Local 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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • shell版Nginx日志蜘蛛爬取查看脚本
  • Shell脚本批量清除Nginx缓存
  • nginx日志切割shell脚本
  • shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)
  • shell脚本之nginx自动化脚本
  • Crontab+Shell做Nginx日志切割脚本实例代码

相关文章

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

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

    1. 创建一个目录,用来存放脚本和安装包 [root@localhost nginx]# tree . ├── install.sh └── packages └── nginx-1.20.1.ta
    2021-11-15
  • Python人工智能之混合高斯模型运动目标检测详解分析

    Python人工智能之混合高斯模型运动目标检测详解分析

    【人工智能项目】混合高斯模型运动目标检测 本次工作主要对视频中运动中的人或物的边缘背景进行检测。 那么走起来瓷!!! 原视频 高斯算
    2021-11-15
  • Golang通脉之流程控制详情

    Golang通脉之流程控制详情

    目录1、if else(分支结构)1.1 if条件判断基本写法1.2 if条件判断特殊写法2、for(循环结构)2.1 无限循环3、for range(键值循环)4、switch cas
    2021-11-15
  • shell脚本源码安装nginx的详细过程

    shell脚本源码安装nginx的详细过程

    SHELL概念 SHELL是什么?SHELL是Linux内核跟用户之间沟通的桥梁; SHELL也是一个命令解释器,用户可以输入命令到SHELL,SHELL将命令
    2021-11-15
  • shell 中小括号、中括号及大括号的区别解析

    shell 中小括号、中括号及大括号的区别解析

    目录一、小括号,圆括号()1、单小括号 ()2、双小括号 (( ))二、中括号,方括号[]1、单中括号 []2、双中括号[[ ]]三、大括号、花括号 {}1、
    2021-11-15
  • Python MNIST手写体识别详解与试练

    Python MNIST手写体识别详解与试练

    【人工智能项目】MNIST手写体识别实验及分析 1.实验内容简述 1.1 实验环境 本实验采用的软硬件实验环境如表所示: 在Windows操作系统下,采
    2021-11-15
  • Python 中的 copy()和deepcopy()

    Python 中的 copy()和deepcopy()

    目录1、copy.copy()2、deepcopy.copy()前言: 在处理列表和字典时,尽管传递引用常常是最方便的方法,但如果函数修改了传入的列表或字典,可
    2021-11-15
  • 详解OpenMV图像处理的基本方法

    详解OpenMV图像处理的基本方法

    目录一、图像处理基础知识二、OpenMV图像处理的基本方法1. 感光元件相关名词解释2. 图像的基本运算3. 使用图像的统计信息4. 画图5. 寻找色块
    2021-11-15
  • Golang通脉之数据类型详情

    Golang通脉之数据类型详情

    目录1、标识符与关键字1.1 标识符1.2 关键字2、变量2.1 什么是变量2.2 变量类型2.3 变量声明3、常量3.1 iota4、基本数据类型4.1 整型4.2 浮点
    2021-11-15
  • Golang通脉之map详情

    Golang通脉之map详情

    目录1、定义2、基本使用3、判断键是否存在4、map的遍历5、delete()函数删除map元素6、指定顺序遍历map7、map类型的切片8、value为切片类型的
    2021-11-15

最新评论