测试版

Nginx 提供测试版(Mainline)供开发者和早期采用者测试新功能和改进。

版本分支

Stable(稳定版)

  • 经过充分测试
  • 适合生产环境
  • 仅包含错误修复
  • 版本号示例:1.24.0, 1.24.1

Mainline(主线版)

  • 包含最新功能
  • 可能包含未发现的错误
  • 适合开发和测试
  • 版本号示例:1.25.0, 1.25.1

选择版本

使用 Stable 版本

适用场景:

  • 生产环境部署
  • 追求稳定性
  • 不需要最新功能

下载:

wget http://nginx.org/download/nginx-1.24.0.tar.gz

使用 Mainline 版本

适用场景:

  • 开发测试环境
  • 需要最新功能
  • 愿意承担潜在风险

下载:

wget http://nginx.org/download/nginx-1.25.0.tar.gz

测试版特性

新功能预览

Mainline 版本通常包含:

  • 新的 HTTP 功能
  • 性能改进
  • 安全增强
  • 模块更新
  • 配置语法改进

示例:HTTP/3 支持

HTTP/3 支持最初在 Mainline 版本中引入:

# Mainline 1.25.0+
server {
    listen 443 quic reuseport;
    listen 443 ssl;
    http2 on;
    http3 on;

    ssl_certificate     /etc/ssl/certs/example.com.crt;
    ssl_certificate_key /etc/ssl/private/example.com.key;

    add_header Alt-Svc 'h3=":443"; ma=86400';
}

安装测试版

从源代码安装

# 下载主线版
cd /usr/local/src
wget http://nginx.org/download/nginx-1.25.0.tar.gz
tar -xzvf nginx-1.25.0.tar.gz
cd nginx-1.25.0

# 配置
./configure \
  --prefix=/etc/nginx \
  --sbin-path=/usr/sbin/nginx \
  --modules-path=/usr/lib/nginx/modules \
  --with-compat \
  --with-http_ssl_module \
  --with-http_v2_module \
  --with-http_v3_module

# 编译安装
make
sudo make install

使用官方软件源

Ubuntu/Debian

# 导入签名密钥
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

# 添加主线版软件源
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

# 安装
sudo apt update
sudo apt install nginx

CentOS/RHEL

# 创建软件源配置
sudo vim /etc/yum.repos.d/nginx.repo
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
# 安装
sudo yum install nginx

版本升级路径

Stable → Mainline

# 1. 备份配置
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

# 2. 下载主线版
wget http://nginx.org/download/nginx-1.25.0.tar.gz
tar -xzvf nginx-1.25.0.tar.gz
cd nginx-1.25.0

# 3. 配置(使用相同的选项)
./configure --prefix=/etc/nginx \
            --sbin-path=/usr/sbin/nginx \
            --with-http_ssl_module \
            --with-http_v2_module

# 4. 编译
make

# 5. 升级
sudo make upgrade

Mainline → Stable

# 1. 备份配置
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

# 2. 下载稳定版
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -xzvf nginx-1.24.0.tar.gz
cd nginx-1.24.0

# 3. 配置
./configure --prefix=/etc/nginx \
            --sbin-path=/usr/sbin/nginx \
            --with-http_ssl_module \
            --with-http_v2_module

# 4. 编译
make

# 5. 升级
sudo make upgrade

测试注意事项

1. 配置兼容性

测试版可能有配置语法变化:

# 测试配置
sudo nginx -t

# 查看详细错误
sudo nginx -T

2. 模块兼容性

动态模块需要重新编译:

# 重新编译模块
cd nginx-1.25.0
./configure --with-compat \
  --add-dynamic-module=/path/to/module

make modules
sudo cp objs/*.so /usr/lib/nginx/modules/

3. 监控日志

# 监控错误日志
sudo tail -f /var/log/nginx/error.log

# 监控访问日志
sudo tail -f /var/log/nginx/access.log

4. 性能测试

# 使用工具测试性能
ab -n 1000 -c 10 http://localhost/
wrk -t12 -c400 -d30s http://localhost/

回滚方案

如果测试版出现问题,快速回滚:

# 1. 停止 Nginx
sudo systemctl stop nginx

# 2. 恢复旧版本
sudo cp /usr/sbin/nginx.old /usr/sbin/nginx

# 3. 启动 Nginx
sudo systemctl start nginx

# 4. 验证
nginx -v

报告问题

提交 Bug

  1. 访问 Nginx Bug Tracker
  2. 搜索是否已有相同问题
  3. 创建新工单,提供:
    • Nginx 版本
    • 操作系统
    • 配置文件
    • 错误日志
    • 复现步骤

邮件列表

最佳实践

1. 测试环境

# 在测试环境先验证
./configure --prefix=/tmp/nginx-test
make
sudo make install

/tmp/nginx-test/sbin/nginx -t -c /etc/nginx/nginx.conf

2. 逐步升级

# 不要直接跳到最新版本
1.24.0 → 1.24.1 → 1.25.0

3. 监控指标

# 监控关键指标
- CPU 使用率
- 内存使用
- 响应时间
- 错误率
- 连接数

4. 文档更新

# 查看变更日志
http://nginx.org/en/CHANGES
http://nginx.org/en/CHANGES-1.24
http://nginx.org/en/CHANGES-1.25

版本生命周期

版本类型发布频率支持周期适用场景
Stable每月长期支持生产环境
Mainline频繁短期支持开发测试

总结

  • Stable:生产环境首选,稳定可靠
  • Mainline:开发测试使用,体验新功能
  • 测试前备份: always backup
  • 监控日志:及时发现异常
  • 准备回滚:快速恢复服务