# 工具部署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工具安装时会自动读取目录下的文件:
# 配置工具参数
vim multi-install-nginx.sh
按需修改multi-install-nginx.sh中的参数,首次安装可以全部保持默认。
# 执行工具脚本安装
bash multi-install-nginx.sh
初始安装,如检测到命令缺失,需参考工具输出找到与当前系统相匹配的安装命令,进行手动安装。安装完成后,再重新执行 bash multi-install-nginx.sh
如命令无缺失,会看到持续日志输出显示安装过程,二进制编译安装需要一定时间,耐心等待编译完成:
看到如下信息,则表示安装成功:
# 日常维护
记录工具部署最后的输出日志,参考日志做后续日常维护即可:
请按需手动配置参数文件: /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
# 升级已有
解压 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 即可。
快速跳转
