# 工具部署Nginx

工具类型: shell 脚本

文档更新: 2025-02-22 16:43:06

适用场景: 非云化产品的的私有化部署(自建环境)

# 免责申明和使用须知

  • 1.工具定位声明

    • 本工具为 辅助部署工具,旨在帮助快速搭建云原生环境所依赖的中间件(包含并不仅限于Kubernetes、Nacos、Kafka等),便于项目组快速部署微服务应用。
    • 不承诺提供中间件的长期完整维护、支持或安全保障。
  • 2.开源组件免责声明

    • 本工具使用的 Kubernetes、etcd、calico、Nacos、Kafka等组件均为开源软件,受各自开源许可证保护。
    • 本工具 不修改、不篡改 任何开源组件,仅作为安装和部署的辅助工具。
    • 使用本工具即表示您已阅读并同意相关开源组件的 使用许可协议。
  • 3.安全与责任声明

    • 本工具 不承担 因使用过程中出现的安全问题、系统崩溃、数据丢失等后果的责任。
    • 建议用户自行评估部署环境的安全性,并根据自身需求选择合适的版本和配置。
  • 4.不提供长期维护

    • 本工具仅为临时部署工具,不承诺对中间件进行持续更新、补丁修复、安全处置和兼容性支持。
    • 用户应自行关注官方更新,并根据实际需要决定是否升级或更换工具。
  • 5.商业使用提醒

    • 若您将本工具用于 商业环境,请确保所有使用组件符合其 开源许可证,并遵守相关法律法规。
    • 本工具不提供任何形式的商业支持或担保。
  • 6.用户自主决策

    • 本工具仅供参考和学习使用,最终部署方案由用户自行决定。
    • 在使用前,请确保您具备足够的技术能力,并了解Kubernetes、Nacos、Kafka等等云原生组件的运行机制和配置方法。

# 相关下载

安装工具-单机编译版: https://pan.baidu.com/s/1uY5lQ0miwaFJSJjE76_AzA?pwd=f2dg

安装工具-高可用编译版: https://pan.baidu.com/s/1qajcicpDHYeQGQkQDBmZNQ?pwd=ayzc

# 工具安装

# 上传工具和相关模块包

# 准备一个存放脚本和模块包的目录
mkdir -p /seeyon/scripts/nginx

将multi-install-nginx.sh、Nginx二进制包及相关依赖模块全部上传到同一个目录下,sh工具安装时会自动读取目录下的文件:

1755616125221.png

# 配置工具参数

vim multi-install-nginx.sh

按需修改multi-install-nginx.sh中的参数,首次安装可以全部保持默认。

1755616494229.png

# 执行工具脚本安装

bash multi-install-nginx.sh

初始安装,如检测到命令缺失,需参考工具输出找到与当前系统相匹配的安装命令,进行手动安装。安装完成后,再重新执行 bash multi-install-nginx.sh

1755616821964.png

如命令无缺失,会看到持续日志输出显示安装过程,二进制编译安装需要一定时间,耐心等待编译完成:

1755617311592.png

看到如下信息,则表示安装成功:

1755617194343.png

# 日常维护

记录工具部署最后的输出日志,参考日志做后续日常维护即可:

请按需手动配置参数文件: /apps/nginx/conf/nginx.conf
当前默认不加载配置目录: /apps/nginx/conf.d/{http,stream}
如果需要记得取消行注释: /apps/nginx/conf/nginx.conf 中的 include 行

服务管理
启动服务: systemctl start nginx
重启服务: systemctl restart nginx
关闭服务: systemctl stop nginx
重载配置: systemctl reload nginx
服务状态: systemctl status nginx

相关命令
检查配置: /apps/nginx/sbin/nginx -t
启动服务: /apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
关闭服务: /apps/nginx/sbin/nginx -s stop
重载配置: /apps/nginx/sbin/nginx -s reload
查看版本: /apps/nginx/sbin/nginx -v

# 预编译纯静态的 nginx 二进制文件

当前,预编译有 amd64 和 arm64 两个架构的 nginx纯静态的最新版二进制文件给有需要的同事使用。

nginx-static 的版本信息:nginx 1.28.0 | zlib 1.3.1 | pcre2 10.45 | openssl 3.0.17

编译时,默认安装路径为:/apps/nginx。

部署时,安装目录不是 /apps/nginx 这个路径,则需使用 -p 参数按需调整为实际安装路径。

编译时开启了 nginx 所有核心模块,还开启/支持以下功能模块:

ssl/http2/http3
nginx-sticky-module-ng
ngx_http_proxy_connect_module

# 使用方法

下载对应硬件平台的 tgz 包

amd64/x86_64 平台下载:nginx-static-1.28.0-amd64.tgz

arm64/aarch64 平台下载:nginx-static-1.28.0-arm64.tgz

1755593281963.png

# 升级已有

解压 tgz 包相对路径下的 sbin/nginx 这个文件替换原有同名文件即可。

# 全新安装

1、解压 tgz 包到对应目录下,如:/apps,不需要再添加nginx。解压后会自动在 /apps 下创建 nginx 目录。效果如:/apps/nginx。

注:/apps/nginx 为实际安装目录

# 创建安装根目录
mkdir -p /apps

# 创建运行nginx的默认用户和组(默认nobody)
grep -q "^nobody:" /etc/group || groupadd nobody
grep -q "^nobody:" /etc/passwd || useradd -r -s /usr/sbin/nologin -g nobody nobody
# amd64/x86_64 架构
tar -xf nginx-1.28.0-amd64.tgz -C /apps

# arm64/aarch64 架构
tar -xf nginx-1.28.0-arm64.tgz -C /apps

2、使用命令创建服务控制文件

注:/apps/nginx 为实际安装目录 可自行调整。例如:/home/yfc/nginx

ngxPrefix=/apps/nginx
cat > /etc/systemd/system/nginx.service << EOF
[Unit]
Description=Nginx Server
After=network.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
ExecStartPre=${ngxPrefix}/sbin/nginx -p ${ngxPrefix} -t
ExecStart=${ngxPrefix}/sbin/nginx -p ${ngxPrefix}
ExecReload=${ngxPrefix}/sbin/nginx -p ${ngxPrefix} -s reload
# User=nobody
# Group=nobody
Restart=on-failure
RestartSec=5s
KillSignal=SIGQUIT
TimeoutStopSec=10s
# PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

3、一些服务管理命令

systemctl daemon-reload
systemctl restart nginx
systemctl status nginx

4、当实际部署路径和编译时路径不一样时的手动管理命令(以 /home/yfc/nginx 为例)

ngxPrefix=/home/yfc/nginx
# 测试
${ngxPrefix}/sbin/nginx -p ${ngxPrefix} -t
# 启动
${ngxPrefix}/sbin/nginx -p ${ngxPrefix}
# 重载
${ngxPrefix}/sbin/nginx -p ${ngxPrefix} -s reload
# 关闭
${ngxPrefix}/sbin/nginx -p ${ngxPrefix} -s stop

# 预编译纯静态的 angie 二进制文件

angie 官方网址:https://cn.angie.software

angie 支持铜锁和国密功能 相关文档参考链接:https://www.tongsuo.net/docs/features/angie/

当前,预编译有 amd64 和 arm64 两个架构的 angie纯静态的最新版二进制文件给有需要的同事使用。

angie-static 的版本信息:angie 1.10.1 | zlib 1.3.1 | pcre2 10.45 | tongsuo 8.4.0

编译时,默认安装路径为:/apps/angie。

部署时,安装目录不是 /apps/angie 这个路径,则需使用 -p 参数按需调整为实际安装路径。

编译时开启了 angie 所有核心模块,还开启/支持以下功能模块(sticky 模块已内置):

ssl/http2/http3
ngx_http_proxy_connect_module

安装和升级参考nginx的操作即可。注意把 nginx 改为 angie 即可。

编撰人:yangfc、het