最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 如何在离线无外网环境中完成 Nginx 源码编译安装
时间:2026-09-03 19:10:48 编辑:袖梨 来源:一聚教程网
离线编译安装Nginx需提前下载并校验Nginx 1.26.3、OpenSSL 3.0.20、PCRE 8.45、Zlib 1.3.1源码包,按OpenSSL→zlib→PCRE顺序编译安装至/app/deps/,再以源码路径配置Nginx并指定模块,最终普通用户可启动验证。
在离线无外网环境中编译安装 Nginx,核心是提前准备所有依赖和源码、按正确顺序编译、并确保非 root 用户也能完成部署。整个过程不依赖网络,但对路径规划、依赖版本兼容性和编译顺序要求严格。
提前下载并验证全部源码包
必须在有网络的机器上一次性下载以下组件,并校验 SHA256 值(防止传输损坏):
- Nginx:推荐 1.26.3(官网稳定版),地址:nginx.org/download
- OpenSSL:选 3.0.20(与 Nginx 1.26+ 兼容),地址:openssl.org/source
- PCRE:8.45 即可(非 PCRE2),系统若无正则支持则必须编译;地址:sourceforge.net/pcre
- Zlib:1.3.1,多数系统自带运行时,但若 configure 报错“zlib not found”,需额外编译;地址:zlib.net
所有 tar.gz 包统一传到目标机同一目录(如 /app/src),再解压:
tar -xzf nginx-1.26.3.tar.gztar -xzf openssl-3.0.20.tar.gz
tar -xzf pcre-8.45.tar.gz
tar -xzf zlib-1.3.1.tar.gz
按顺序编译底层依赖库
依赖不能跳过或颠倒顺序,否则 Nginx configure 会找不到头文件或链接失败:
- 先编译 OpenSSL:
cd openssl-3.0.20 && ./config --prefix=/app/deps/openssl --openssldir=/app/deps/openssl && make && make install - 再编译 zlib:
cd ../zlib-1.3.1 && ./configure --prefix=/app/deps/zlib && make && make install - 接着编译 PCRE:
cd ../pcre-8.45 && ./configure --prefix=/app/deps/pcre && make && make install
每个库安装后,确认对应 include/ 和 lib/ 目录存在,例如 /app/deps/openssl/include/openssl/ssl.h。
配置并编译 Nginx(支持非 root 用户)
进入 Nginx 源码目录,用绝对路径指向已编译的依赖:
cd nginx-1.26.3./configure
--prefix=/app/user/nginx
--with-openssl=/app/src/openssl-3.0.20
--with-pcre=/app/src/pcre-8.45
--with-zlib=/app/src/zlib-1.3.1
--with-http_ssl_module
--with-http_v2_module
--with-http_stub_status_module
--with-stream
注意:
– 不要用 --with-openssl=/app/deps/openssl(那是安装路径,configure 需要源码路径来读头文件)
– 若跳过 PCRE 或 zlib 编译,且系统无 pcre.h 或 zlib.h,configure 会直接失败
– 执行 make -j$(nproc) 加速编译,再 make install
启动与验证(无需 sudo)
安装完成后,普通用户即可运行:
- 检查版本:
/app/user/nginx/sbin/nginx -v - 查看编译参数:
/app/user/nginx/sbin/nginx -V(确认 ssl、stream 等模块已启用) - 启动服务:
/app/user/nginx/sbin/nginx - 测试配置:
/app/user/nginx/sbin/nginx -t - 访问
http://localhost:80(确保防火墙放行或本地 curl 测试)
如提示 “bind() to 0.0.0.0:80 failed”,说明端口被占用或需用 root 启动——此时可改用非特权端口(如 8080),在 /app/user/nginx/conf/nginx.conf 中修改 listen 8080; 即可。
相关文章
- 2026年值得推荐的视频剪辑软件有哪些?高效易用的剪辑工具盘点 09-03
- SpringAOP的一个使用例子 09-03
- 我的勇者恶魔族魂卡 恶魔族魂卡效果说明 09-03
- 我的勇者幽灵王如何打 BOSS打法心得分享 09-03
- 男装店如何突围网店冲击 09-03
- TPLink TLWR745N 无线路由器管控小孩上网行为设置 09-03