# 自动构建最新版本的 Nginx
Date: 2024-12-22


#### 背景

Nginx 是现代互联网中最受欢迎的高性能 Web 服务器和反向代理服务器之一。为了充分发挥其性能，我们通常需要使用最新版本的 Nginx，并静态链接最新的依赖库（如 PCRE2、zlib 和 OpenSSL）。然而，手动下载和编译这些依赖库既耗时又容易出错。

为了解决这个问题，我在 [GitHub 项目](https://github.com/weida/nginx-latest-builder) 中编写了一个脚本，可以自动化完成这一流程，大幅简化了 Nginx 的构建和安装过程。

* * *

#### 脚本功能

- **自动化获取最新版本**： 脚本从 GitHub 拉取以下依赖库的最新稳定版本：
- PCRE2
- zlib
- OpenSSL
- Nginx
    
- **静态编译支持**： 将所有依赖库静态编译到 Nginx 中，生成独立的二进制文件。
    
- **TLS 1.3 支持**： 使用最新版本的 OpenSSL，启用 TLS 1.3 加密协议。
    
- **多操作系统兼容**： 自动检测系统的包管理器（`yum` 或 `apt`），并安装所需的构建工具。目前支持：
    
- CentOS 7+
- Ubuntu 24.04+
- 阿里云 Linux 3

* * *

#### 使用方法

**步骤 1**：下载并运行脚本

您可以通过以下命令一键下载并运行脚本：

```bash
bash <(curl -L https://raw.githubusercontent.com/weida/nginx-latest-builder/main/nginx-builder.sh)
```

**步骤 2**：完成安装

脚本会自动下载、编译和安装最新的 Nginx。执行完毕后，您可以通过以下命令查看版本信息：

```bash
/usr/local/nginx/sbin/nginx -V
```

* * *

#### 自定义配置

脚本默认使用以下 Nginx 配置选项，您可以根据需求在脚本中修改：

```bash
--with-http_ssl_module \
--with-http_v2_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_sub_module \
--with-pcre=/path/to/pcre2 \
--with-zlib=/path/to/zlib \
--with-openssl=/path/to/openssl \
--with-openssl-opt="enable-tls1_3" \
--with-cc-opt="-O2" \
--with-ld-opt="-Wl,-rpath,/usr/local/lib"
```

* * *

#### 总结

通过这个脚本，您可以轻松获得一套最新的 Nginx 服务环境，无需手动下载、配置和编译依赖库，大大提升了效率。如果您对项目感兴趣，欢迎访问 [GitHub 项目主页](https://github.com/weida/nginx-latest-builder) 查看详细代码并参与贡献！

* * *

 

图片from[林佳興](https://www.facebook.com/groups/474930279315210/user/100008072223261/?__cft__[0]=AZX742Yae_aB6VO0h8bmdUGUlqpHHS6BK09WQl-LR1WC5KKF7S7FB0nxrOGcYRbCtUEtsvdtJBde96BAmlCgA3zgcxSPc4qcneDxdfzizVMZ3ufSzfOxXPjF1ujGXlQ7etO1Dswye4YSagDc2dKUMn9fdFu6E2JhPFbiB8rdGulCm9DrD0lazZkoGqb4vQEb4xN7S7LZPaYM_k0LnaMUq_VG&__tn__=-UC*F)

