5分钟快速上手nginx-autoinstall:Ubuntu源码编译NGINX的简单入门教程
【免费下载链接】nginx-autoinstallCompile NGINX from source with custom modules and patches on Debian and Ubuntu项目地址: https://gitcode.com/gh_mirrors/ng/nginx-autoinstall
很多人在 Ubuntu 上部署网站时,都会遇到一个共同的难题:apt 自带的 NGINX 版本老旧,想升级功能就必须手动下载源码、配置参数、编译安装,过程繁琐还容易出错。nginx-autoinstall 正是为解决这个痛点而生的开源脚本,它能在 Debian 和 Ubuntu 上自动化完成源码编译NGINX的全过程,支持数十种自定义模块与官方补丁。本教程带你 5 分钟快速上手,从零完成一次 Ubuntu 源码编译NGINX 的实战,新手也能轻松搞定。
什么是 nginx-autoinstall?它能帮你做什么?
nginx-autoinstall 是一个用 Bash 编写的 NGINX 自动编译安装脚本,你只需要回答几个简单的 yes/no 问题,剩下的下载、解压、打补丁、编译、安装全部由它代劳。它的核心能力包括:
- 🚀 自动编译安装 NGINX 最新mainline(主线版)或stable(稳定版)
- 🧩 一键集成 20+ 常用模块:Brotli、PageSpeed、Lua、RTMP、HTTP/3、ModSecurity 等
- 🔒 可选从源码编译 OpenSSL / LibreSSL,原生支持 TLS 1.3 与 ChaCha20
- 📦 自带优化版
nginx.conf、systemd 服务文件与日志轮转配置 - 🔁 支持一键更新、彻底卸载、脚本自更新,以及自动化无人值守模式
脚本的入口文件是 nginx-autoinstall.sh,相关的配置与补丁都放在项目目录里:conf/nginx.conf(推荐的生产级配置)、conf/nginx.service(systemd 启动脚本)、conf/nginx-logrotate(日志轮转)、patches/(HTTP/3 与 HPACK 补丁),以及conf/GeoIP.conf(GeoIP 数据库示例)。
为什么要源码编译 NGINX?和 apt 安装有什么区别?
很多人会问:直接用apt install nginx不就行了吗?其实两者差别很大:
| 对比项 | apt 安装 | 源码编译 NGINX(本脚本) |
|---|---|---|
| 版本 | 仓库内固定版本,往往滞后 | 可自选最新主线版或稳定版 |
| 模块 | 官方默认模块 | 自定义模块随意组合,如 Brotli、Lua、HTTP/3 |
| SSL 支持 | 依赖系统 OpenSSL | 可编译最新 OpenSSL / LibreSSL,开启 TLS 1.3 |
| 性能 | 默认参数 | 内置优化编译参数与配置 |
如果你追求最新特性、特殊模块或更优性能,源码编译 NGINX 几乎是唯一选择,而这个脚本把最劝退的“编译环节”变成了一条命令。
环境准备:只需 3 个前提条件
开始之前,请确认你的服务器满足以下条件:
- ✅ 系统为Ubuntu 16.04+或Debian 9+(推荐 Ubuntu 22.04 LTS)
- ✅ 拥有root 权限(脚本会检测,非 root 会直接退出)
- ✅ 网络通畅(需要下载源码包与依赖)
一键安装步骤:5 分钟完成源码编译
第 1 步:获取脚本
将项目克隆到服务器上:
git clone https://gitcode.com/gh_mirrors/ng/nginx-autoinstall cd nginx-autoinstall第 2 步:运行安装脚本
chmod +x nginx-autoinstall.sh ./nginx-autoinstall.sh第 3 步:按提示做出选择
脚本会依次向你提问,全程只需要输入数字或 y/n:
- 选择操作:输入
1进入“Install or update Nginx” - 选择版本:输入
1装稳定版,输入2装主线版 - 勾选模块:按需输入
y,例如 Brotli 压缩、GeoIP 地域识别、RTMP 直播流 - 选择 SSL:系统 OpenSSL / 源码 OpenSSL / LibreSSL 三选一
- 按任意键,等待自动编译完成(约 3~8 分钟,视机器性能而定)
第 4 步:验证安装结果
编译完成后,验证一下版本:
nginx -v systemctl start nginx && systemctl status nginx看到版本号输出且服务状态为 active,说明Ubuntu 源码编译NGINX已经大功告成!🎉
最常用的可选模块一览
如果不知道该勾选哪些模块,可以参考这份速查表:
| 模块 | 用途 |
|---|---|
| Brotli | 比 gzip 压缩率更高的新一代压缩算法 |
| PageSpeed | Google 出品的页面性能优化模块 |
| HTTP/3 + Quiche | 启用 QUIC 协议,提升弱网下的加载速度 |
| Lua | 用 Lua 脚本扩展 NGINX 能力,实现灰度发布等 |
| RTMP | 搭建直播/点播流媒体服务器 |
| ModSecurity | 开源 Web 应用防火墙(WAF) |
| Cache Purge | 一键清理 FastCGI、代理缓存 |
| Bad Bot Blocker | 拦截恶意爬虫、垃圾蜘蛛与 CC 攻击 |
每个模块的配套配置示例都可以在项目的conf/目录下找到。
进阶技巧:无人值守一键自动化编译
如果你想把编译流程写进自动化脚本,nginx-autoinstall 提供了Headless(无人值守)模式,通过环境变量预先设定所有选项:
HEADLESS=y \ NGINX_VER=MAINLINE \ BROTLI=y \ ./nginx-autoinstall.sh上面这行命令会自动编译安装主线版 NGINX 并启用 Brotli,全程无需人工干预,非常适合配合 CI/CD 或批量部署服务器使用。
常见问题与解决技巧
Q1:编译过程中报错怎么办?大多是依赖缺失或网络问题。脚本会自动安装build-essential、libpcre3-dev等依赖,请确认已切换到 root 用户,并保持网络稳定后重试。
Q2:如何彻底卸载?运行脚本后选择选项2(Uninstall Nginx),即可连同日志、配置一并清理。
Q3:安装完 NGINX 后如何设置开机自启?脚本会生成 systemd 服务,项目中的conf/nginx.service提供了标准服务文件,直接执行systemctl enable nginx即可。
小结
通过 nginx-autoinstall,Ubuntu 源码编译NGINX从一件让人头疼的苦差事,变成了一条命令就能完成的轻松任务。无论是想要最新主线版、集成特殊模块,还是搭建流媒体、启用 HTTP/3,这个脚本都能帮你快速实现。现在就克隆项目动手试试吧,5 分钟就能拥有一个完全定制化的 NGINX!😊
【免费下载链接】nginx-autoinstallCompile NGINX from source with custom modules and patches on Debian and Ubuntu项目地址: https://gitcode.com/gh_mirrors/ng/nginx-autoinstall
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考