Nginx 安装与安全验证

版本说明:本文保留 1.25.0 源码安装示例用于复现旧环境,但 1.25.0 当时属于 mainline 分支,不应长期描述为“最新版”或“稳定版”。部署前请在 Nginx 官方下载页核对当前 stable/mainline 版本和安全公告。

新建生产环境优先使用发行版或 Nginx 官方签名仓库,以便持续接收安全更新。确需源码编译时,应从官方 HTTPS 地址下载源码和依赖,验证 PGP/SHA256,不要直接执行未经审查的远程安装脚本。

安装完成必须执行:

nginx -V
nginx -t
systemctl enable --now nginx
curl -I http://127.0.0.1/

同时配置专用运行账号、最小目录权限、日志轮转、TLS、请求体与超时限制,并在变更前保留可回滚的配置副本。

官方资料:https://nginx.org/en/download.html、https://nginx.org/en/linux_packages.html

Nginx (Engine X) 是一款高性能的 HTTP/反向代理 服务器及电子邮件(IMAP/POP3/SMTP)代理服务器。

核心特性
  • 高性能架构:采用模块化、事件驱动、异步、单线程及非阻塞架构。

  • 资源极低:在高并发下保持极低的内存消耗和 CPU 占用。

  • 多路复用:大量采用 epoll(Linux)等事件通知机制。

  • 发展历程:由 Igor Sysoev 开发,2004 年发布首个版本。Nginx 同时维护 stable 与 mainline 分支,具体版本应以官方发布页为准。

方案一:源码编译安装(以 v1.25.0 为例)

适用于确实需要自定义编译参数或第三方模块的场景。常规生产部署优先使用受支持的软件包。

1. 快速执行命令

建议以 root 权限执行以下命令,确保依赖库下载完整:

cd /opt
# 1. 下载依赖包(zlib, pcre, openssl)
wget -c http://iso.sqlfans.cn/linux/zlib-1.2.11.tar.gz
wget -c http://iso.sqlfans.cn/linux/pcre-8.44.tar.gz
wget -c http://iso.sqlfans.cn/linux/openssl-1.1.1g.tar.gz
wget -c http://iso.sqlfans.cn/linux/nginx-1.25.0.tar.gz
wget -c http://iso.sqlfans.cn/linux/nginx_openssl_conf.conf

# 2. 获取并运行安装脚本
rm -f install_nginx_1.25.0.sh && wget -c http://iso.sqlfans.cn/linux/install_nginx_1.25.0.sh
chmod +x install_nginx_1.25.0.sh
sh ./install_nginx_1.25.0.sh
2. 彻底卸载
# 停止服务
/usr/local/nginx/sbin/nginx -s stop 2>/dev/null
# 清理安装目录与系统用户
rm -rf /usr/local/nginx
userdel -r nginx 2>/dev/null
# 移除开机自启项
sed -i '/nginx/d' /etc/rc.local

方案二:Docker 容器化安装

适用于微服务架构、快速交付以及需要保持宿主机环境洁净的场景。

1. 快速部署流程
# 1. 获取官方镜像
docker pull nginx:1.23.1

# 2. 准备宿主机目录(持久化配置与静态资源)
mkdir -p /data/docker/nginx/www
wget -c http://iso.sqlfans.cn/docker/yml/nginx.conf -O /data/docker/nginx/nginx.conf

# 3. 运行容器
# -p 映射端口,-v 挂载路径,--restart 保证开机自启
docker run -idt \
  --name nginx \
  -p 8009:8009 \
  -v /data/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
  -v /data/docker/nginx/www:/data \
  --restart always \
  nginx:1.23.1

# 4. 验证版本
docker exec -it nginx nginx -v
2. 彻底卸载
docker stop nginx && docker rm nginx
# 删除相关镜像
docker rmi -f $(docker images | grep nginx | awk '{print $3}')
# 清理持久化数据目录
rm -rf /data/docker/nginx
Copyright © yan-jian.com 2023 - 2026 · Powered by GitBook更新时间: 2026-10-18 13:28:39

results matching ""

    No results matching ""