自动化安装Nginx

  1. 指定版本号和用户;

  2. 确定安装目录;

  3. 确定安装编译模块;

  4. 安装相关依赖;

  5. 下载源码包并解压;

  6. 编译安装;

  7. 文件授权及临时文件清理。

    #!/bin/bash

    用户输入的Nginx版本号

    NGINX_VERSION=$1

    传入用户

    NGINX_USER="$2"

    定义Nginx安装目录

    INSTALL_DIR="/work/nginxpwd"

    #定义编译安装模块,有需要请自己新增

    MODULES="--with-http_ssl_module
    --with-http_realip_module
    --with-http_sub_module
    --with-stream
    --with-http_stub_status_module
    --with-stream_ssl_module"

    #目录检测,没有则创建

    if [ -d "INSTALL_DIR" ]; then echo "目录已存在..." else mkdir -p "INSTALL_DIR"
    echo "目录创建完成..."
    fi

    #用户检测,没有则创建

    if ! id -u "$NGINX_USER" > /dev/null 2>&1; then
    useradd $NGINX_USER
    fi

    安装相关依赖

    yum -y install gcc gcc-c++ make automake autoconf pcre pcre-devel zlib zlib-devel openssl openssl-devel libtool GeoIP-devel wget

    下载Nginx源码包

    wget -O /tmp/nginx-{NGINX_VERSION}.tar.gz https://nginx.org/download/nginx-{NGINX_VERSION}.tar.gz

    解压源码包

    tar -zxf /tmp/nginx-${NGINX_VERSION}.tar.gz -C /tmp/

    进入源码目录

    cd /tmp/nginx-${NGINX_VERSION}

    配置、编译并安装Nginx

    ./configure --prefix=INSTALL_DIR \ --user=NGINX_USER
    --group=$NGINX_USER
    MODULES \ && make -j(nproc)
    && make install

    清理临时文件

    rm -rf /tmp/nginx-{NGINX_VERSION} /tmp/nginx-{NGINX_VERSION}.tar.gz

    #调整目录用户权限

    chown -R NGINX_USER:NGINX_USER $INSTALL_DIR

    #安装成功的提示

    echo "Nginx ${NGINX_VERSION} has been installed to ${INSTALL_DIR}"

传入版本号和用户进行安装

sh nginx_install.sh 1.24.0 test2

#安装成功

#切换到普通用户成功启动

相关推荐
MXsoft6181 分钟前
HP iLO5服务器硬件监控指标解读
运维·服务器
magic334165634 分钟前
生成Elasticsearch xpack安全认证证书
运维·elasticsearch·jenkins·kibana·logstash
程序员果子5 分钟前
Linux 下 ElasticSearch 集群部署
linux·运维·elasticsearch
天空飘来五行码16 分钟前
第15章 呈现数据《Linux命令行与Shell脚本编程大全笔记》
linux·运维·笔记
低温热源16 分钟前
Ubuntu 安装 XRDP,替代系统自带RDP远程桌面
linux·运维·服务器·ubuntu·rdp
小鹿会议播报1 小时前
【学术会议征稿】第四届人工智能、虚拟现实与可视化国际学术会议(AIVRV 2024)
大数据·人工智能·机器人·自动化·智慧城市·vr
群联云防护小杜1 小时前
有效应对服务器遭受CC攻击的策略与实践
运维·服务器·数据库·安全·sqlite·系统安全
up up!1 小时前
IOSUI自动化之mobiledevice
自动化
测开小林1 小时前
Django+vue自动化测试平台(28)-- ADB获取设备信息
vue.js·python·adb·django·自动化
职场人参2 小时前
怎么将几个pdf合成为一个pdf?几个合并PDF文件的方法
linux·运维·服务器