如何在 Linux 环境下离线安装 Nginx(支持非 root 用户)
如何在 Linux 环境下离线安装 Nginx(支持非 root 用户)
在实际生产环境中,服务器往往处于隔离内网,无法直接使用
yum 或 apt 在线安装。本文将详细介绍如何在 完全离线的 Linux 环境下,以 普通用户身份编译安装 Nginx,并支持 SSL、HTTP/2、Stream 四层代理等常用模块;并给出常用的编译参数、安装步骤及验证方法,适用于无法直接联网安装依赖的场景。
一、安装包准备
离线安装前,请先准备以下源码安装包:
-
nginx:1.26.3
下载地址:https://nginx.org/en/download.html -
openssl:3.0.20
下载地址:https://openssl-library.org/source/ -
pcre:8.45
一般 Linux 系统通常已自带相关运行环境,可不额外下载。
如需源码包,可从以下地址获取:
https://sourceforge.net/projects/pcre/files/pcre/ -
zlib:1.3.1
一般 Linux 系统通常已自带相关运行环境,可不额外下载。
如需源码包,可从以下地址获取:
https://www.zlib.net/
二、解压源码包
将下载好的源码包上传到目标服务器后,分别执行解压。例如:
tar -xzf nginx-1.26.3.tar.gz
tar -xzf openssl-3.0.20.tar.gz
tar -xzf pcre-8.45.tar.gz
tar -xzf zlib-1.3.1.tar.gz
如果 pcre 和 zlib 使用系统自带环境,则这两个源码包可以不解压,也不参与后续编译参数配置。
三、配置编译参数
进入 Nginx 源码目录:
cd nginx-1.26.3
执行 configure 脚本,示例如下:
./configure \
--prefix=/app/user/nginx \
--with-openssl=../openssl-3.0.20 \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_stub_status_module \
--with-stream
参数说明:
--prefix=/app/user/nginx:指定 Nginx 安装目录。--with-openssl=../openssl-3.0.20:指定 OpenSSL 源码目录。--with-http_ssl_module:启用 HTTPS 支持。--with-http_v2_module:启用 HTTP/2 支持。--with-http_stub_status_module:启用状态监控模块。--with-stream:启用stream模块,用于 TCP/UDP 四层代理。
如有需要,也可以显式指定 pcre 和 zlib 的源码目录:
./configure \
--prefix=/app/user/nginx \
--with-pcre=../pcre-8.45 \
--with-zlib=../zlib-1.3.1 \
--with-openssl=../openssl-3.0.20 \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_stub_status_module \
--with-stream
说明:
- 如果系统已经具备可用的
pcre和zlib相关环境,通常可以不显式指定。 - 如果后续使用了
stream {}配置块,编译时必须加上--with-stream,否则启动时可能报错:unknown directive "stream"。
四、编译与安装
在 nginx-1.26.3 目录下执行:
make
make install
执行过程中请关注终端输出,确认是否存在报错。如果任一步骤失败,应先排查依赖或编译参数问题,再重新执行。
五、配置与运行
1. 修改监听端口
如果使用非 root 用户安装并启动 Nginx,通常不能直接监听 80 端口。
此时请修改 conf/nginx.conf 中的 listen 指令,例如改为 8080 或其他高位端口:
listen 8080;
2. 检查配置文件
进入安装目录后执行配置校验:
cd /app/user/nginx/sbin
./nginx -t
如果提示 syntax is ok 和 test is successful,说明配置文件校验通过。
说明:
nginx可执行文件默认位于安装目录下的sbin目录中。- 如果你当前所在目录不是
sbin,也可以使用完整路径执行,例如:
/app/user/nginx/sbin/nginx -t
3. 启动 Nginx
执行以下命令启动:
/app/user/nginx/sbin/nginx
六、测试与验证
1. 检查进程
使用以下命令查看 Nginx 进程是否已正常启动:
ps aux | grep nginx
2. 访问测试
使用 curl 测试服务是否可访问:
curl http://localhost:8080
如果返回了 Nginx 欢迎页对应的 HTML 内容,则说明 Nginx 已安装成功并能够正常提供服务。
七、补充说明
- 如果仅作为静态资源或 HTTP 代理服务使用,通常启用
http相关模块即可。 - 如果需要代理 Nacos gRPC、数据库代理、TCP 转发等四层流量,请确保编译时包含
--with-stream。 - 离线安装场景下,建议保留所有源码包和最终编译参数,便于后续问题排查或环境复现。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)