首页 > 系统相关 >shell脚本一键安装nginx-1.18.0

shell脚本一键安装nginx-1.18.0

时间:2024-04-23 23:34:43浏览次数:18  
标签:shell Nginx -- dev echo nginx 1.18 null

shell脚本一键安装nginx-1.18.0

#!/bin/bash

set -euo pipefail

NGINX_VERSION="1.18.0"
DOWNLOAD_URL="https://nginx.org/download/nginx-$NGINX_VERSION.tar.gz"
INSTALL_DIR="/apps/nginx"
PACKAGE_LIST="gcc pcre-devel openssl-devel zlib-devel"

echo "开始安装 Nginx $NGINX_VERSION..."
echo "1. 安装依赖包..."
if yum list installed $PACKAGE_LIST &> /dev/null; then
    echo "依赖包已安装。"
else
    echo "正在安装依赖包:$PACKAGE_LIST"
    yum -y install $PACKAGE_LIST > /dev/null
    echo "依赖包安装完成。"
fi

echo "2. 创建非登录用户 nginx..."
if id -u nginx &> /dev/null; then
    echo "用户 nginx 已存在。"
else
    useradd -r -s /sbin/nologin nginx > /dev/null
    echo "用户 nginx 创建完成。"
fi

echo "3. 下载并解压 Nginx 源码..."
if [[ -f "/usr/local/src/nginx-$NGINX_VERSION.tar.gz" ]]; then
    echo "Nginx 源码文件已存在,跳过下载。"
else
    wget -q -O "/usr/local/src/nginx-$NGINX_VERSION.tar.gz" "$DOWNLOAD_URL" > /dev/null
    echo "Nginx 源码下载完成。"
fi

cd /usr/local/src || exit 1
tar xzvf "nginx-$NGINX_VERSION.tar.gz" > /dev/null
echo "Nginx 源码解压完成。"

cd "nginx-$NGINX_VERSION" || exit 1

echo "4. 配置、编译及安装 Nginx..."
./configure --prefix="$INSTALL_DIR" \
           --user=nginx \
           --group=nginx \
           --with-http_ssl_module \
           --with-http_v2_module \
           --with-http_realip_module \
           --with-http_stub_status_module \
           --with-http_gzip_static_module \
           --with-pcre \
           --with-stream \
           --with-stream_ssl_module \
           --with-stream_realip_module > /dev/null

make -j 2 > /dev/null
make install > /dev/null

echo "Nginx 编译及安装完成。"

echo "5. 设置目录权限..."
chown -R nginx.nginx "$INSTALL_DIR" > /dev/null
echo "目录权限设置完成。"

echo "6. 创建符号链接..."
ln -s "$INSTALL_DIR/sbin/nginx" /usr/bin/ > /dev/null
echo "符号链接创建完成。"

echo "7. 创建并配置 systemd 服务文件..."
mkdir -p /apps/nginx/run/

cat > /usr/lib/systemd/system/nginx.service << EOF
[Unit]
Description=The nginx HTTP and reverse proxy server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/apps/nginx/run/nginx.pid
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP \$MAINPID
Execstop=/bin/kill -sTERM \$MAINPID

[Install]
WantedBy=multi-user.target
EOF

sed -i '/^#pid.*$/a pid        /apps/nginx/run/nginx.pid;' /apps/nginx/conf/nginx.conf > /dev/null

systemctl daemon-reload > /dev/null
systemctl enable --now nginx > /dev/null

echo "Nginx 服务已配置并启动。"

echo "Nginx 安装完成。"

标签:shell,Nginx,--,dev,echo,nginx,1.18,null
From: https://www.cnblogs.com/misakivv/p/18154085

相关文章

  • CVE-2021-34371 Neo4j-Shell 漏洞复现
    前言偶然的一次机会遇到了这个漏洞,决定在vulhub复现下,重要提醒:本次复现所需要的环境为java8kali更换java环境戳这里漏洞描述Neo4j到3.4.18(启用shell服务器)公开了一个RMI服务,该服务可以任意反序列化Java对象,例如通过setSessionVariable。攻击者可滥用此漏洞进行远程......
  • Nginx+Keepalived 实践Nginx高可用方案
    一、什么是keepalived的?1.Keepalived是一款运行在Linux操作系统上的软件,其主要功能是提升本地网络服务的可用性和冗余度。Keepalived的工作机制主要基于VRRP(VirtualRouterRedundancyProtocol,虚拟路由器冗余协议)实现高可用性。二、keepalived如何实现故障转移1.keepalived对......
  • 配置nginx HTTPS证书
    配置nginxHTTPS证书安装CerbotLet‘sEncryptapt安装不了cerbot,换snapdsudoaptinstallsnapdsudosnapinstall--classiccertbot确保Certbot命令可以通过创建一个符号链接到/usr/bin目录中的命令来运行:sudoln-s/snap/bin/certbot/usr/bin/certbot生成证书ng......
  • Nginx安装配置
    Nginx安装配置安装首先检查是否已安装nginx-v并未安装,所以继续安装aptinstallnginx-corenginx安装完成后的文件位置/usr/sbin/nginx:主程序/etc/nginx:存放配置文件/usr/share/nginx:存放静态文件/var/log/nginx:存放日志启动nginx服务,在服务器(默认80端口)就可......
  • Shell阶段01 shell脚本概述, 脚本规范, shell执行方式, shell变量
    Shell什么是ShellShell就是一个命令解释器。Shell分为交互式shell和非交互式shell。交互式Shell就是命令行上面一条一条命令的执行非交互式Shell就是以脚本的方式运行。通过变量$-来查看是否是交互式或者非交互式Shell交互式和非交互式的区别[root@shell01~]#echo......
  • docker - [05] 部署Nginx
    题记部分 一、查找镜像dockersearchnginx 二、拉取镜像dockerpullnginx 三、启动镜像Nginx默认端口号为80,可以在启动时指定Nginx使用的端口号(例如3344)那么容器外部访问Nginx使用3344端口,而容器内部则是80,两个端口号形成映射关系。dockerrun-d--namen......
  • nginx升级与版本回退
    ginx官网下载安装包http://nginx.org/en/download.html查看nginx文件或目录find/-namenginx2>/dev/null查看已安装的Nginx版本信息,configure配置信息/usr/local/nginx/sbin/nginx-V打开安装目录cd/usr/local上传安装包到服务器解压包tar-zxvfnginx-1.25.5.tar.gz......
  • ubuntu连接Xshell
    要想让Xshell连接ubuntu,首先需要让Ubuntu的IP地址固定下来,要不然每次链接都得重新设置主机ip进入ubuntu,打开终端,输入ifconfig查看inet的地址,与虚拟网络编辑器里的VMnet8的子网地址前三位与虚拟机里面的要一致,不一致的化可以点击下方的还原默认设置进行操作2.这些......
  • 根据Nginx Ingress指标对指定后端进行HPA
    本文分享自华为云社区《根据NginxIngress指标对指定后端进行HPA》,作者:可以交个朋友。背景生产场景下,NginxIngress的流量会通过域名和path路径最终转发至不同的应用,而有时候cpu和内存并不是nginx的性能瓶颈,此时可以基于nginx_ingress_controller_requests指标,为其对应的应用配......
  • nginx 1.25.5 发布
    就在最近nginx发布了1.25.5有一些特性比较有意思新特性stream支持虚拟主机了 比较有意思的功能,结合sni可以做一些很有意思的事情一个新的模块ngx_stream_pass_module 与proxy_pass类似,目前主要是proxy到ipport(域名以及类似upstream格式的待测试)listen支持deferre......