Bootstrap

离线安装 Nginx

        在现代互联网应用中,Nginx 作为高性能的 HTTP 和反向代理服务器,被广泛应用于各种网站和应用系统中。它以其轻量级、高并发处理能力和稳定性而著称。然而,在某些网络受限的环境中,直接在线安装 Nginx 及其依赖项可能会遇到困难。为了满足这些环境的需求,本文将详细介绍如何在离线环境下安装 Nginx 及其所有必要的依赖项。我们将使用 CentOS7 作为示例操作系统,但这些步骤同样适用于其他 Linux 发行版。

1. 准备工作

以安装到/export/server目录下为例:

mkdir -p /export/server

本篇文章所用的Nginx离线安装包汇总:nginx: 离线nginx的安装包汇总

亦可根据下面的步骤的网址自行下载最新版。

2. 安装G++和Gcc环境

1. 下载G++和Gcc离线安装包

从 GitCode 或其他可信源下载 G++ 和 Gcc 的离线安装包。

GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。icon-default.png?t=O83Ahttps://gitcode.com/open-source-toolkit/2b513/overview?utm_source=tools_gitcode&index=top&type=card&&isLogin=1

2. 解压并上传 G++ 和 Gcc

将下载的安装包解压并上传到 /export/server 目录。

3. 安装 G++ 和 Gcc

进入解压后的目录并安装:

cd /export/server/gcc
rpm -ivh *rpm --nodeps --force

4. 验证安装

安装完成后,可以通过以下命令检查 G++ 和 Gcc 是否安装成功:

gcc -v
gcc --version

3. 安装 PCRE

1. 下载并上传 PCRE

从PCRE 官方网站下载并上传 pcre-8.45.tar.gz 到 /export/server 目录。

https://sourceforge.net/projects/pcre/files/pcre/8.45/icon-default.png?t=O83Ahttps://sourceforge.net/projects/pcre/files/pcre/8.45/2. 安装并解压 PCRE

安装并解压 PCRE:

cd /export/server
tar -zxvf pcre-8.45.tar.gz
cd pcre-8.45
./configure
sudo make && make install

3. 验证安装

检查 PCRE 是否安装成功:

pcre-config --version

4. 安装 zlib

1. 下载并上传 zlib

从zlib 官方网站下载并上传 zlib.tar.gz 到 /export/server 目录。

zlib Home Siteicon-default.png?t=O83Ahttps://www.zlib.net/

2. 安装并解压 zlib

安装并解压 zlib:

cd /export/server
tar -zxvf zlib.tar.gz
cd zlib-1.3.1
./configure
sudo make && make install

3. 验证安装

检查 zlib 是否安装成功:

pkg-config --modversion zlib

5. 安装 perl-IPC-Cmd

1. 下载 perl-IPC-Cmd

从 GitCode 下载 perl-IPC-Cmd 的 RPM 包。

GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。icon-default.png?t=O83Ahttps://gitcode.com/open-source-toolkit/4c6cf/overview?utm_source=tools_gitcode&index=top&type=card&&isLogin=12. 解压并上传 perl-IPC-Cmd

将下载的 RPM 包上传到 /export/server 目录。

3. 安装 perl-IPC-Cmd

进入解压后的目录并安装:

cd /export/server/rpm
rpm -ivhU * --nodeps --force

4. 验证安装

检查 perl-IPC-Cmd 是否安装成功:

perldoc -l IPC::Cmd

 

6. 安装 OpenSSL

1. 下载并上传 OpenSSL

从OpenSSL 官方网站下载并上传 openssl-3.4.0.tar.gz 到 /export/server 目录。

https://www.openssl.org/source/icon-default.png?t=O83Ahttps://www.openssl.org/source/

2. 安装并解压 OpenSSL

安装并解压 OpenSSL (该步骤执行耗时7-10分钟):

cd /export/server
tar -zxvf openssl-3.4.0.tar.gz
cd openssl-3.4.0
./config --prefix=/export/server/openssl
./config -t
sudo make depend
sudo make install

3. 配置环境变量

编辑 /etc/ld.so.conf 文件,添加 OpenSSL 库路径:

sudo vi /etc/ld.so.conf

G 跳转到文件尾行,$ 跳转到当前行末尾,i 编辑文件。在文件末尾新建一行添加:

/export/server/openssl/lib

ESC 退出编辑,:wq 保存并退出。切换目录,并更新系统动态链接库缓存:

cd /export/server/openssl
sudo ldconfig

编辑 /etc/profile 文件,添加 OpenSSL 的环境变量:

sudo vi /etc/profile

G 跳转到文件尾行,$ 跳转到当前行末尾,i 编辑文件。在文件末尾新建一行添加:

export OPENSSL=/export/server/openssl/bin
export PATH=$OPENSSL:$PATH:$HOME/bin

ESC 退出编辑,:wq 保存并退出。重新加载系统配置文件 /etc/profile,使其中的环境变量和设置立即生效:

source /etc/profile

4. 验证安装

检查 OpenSSL 是否安装成功:

ldd /export/server/openssl/bin/openssl

确保每一个可执行文件或共享库所依赖的库文件名称对应实际路径,而非 not found 。 

7. 安装 Nginx

1. 下载并上传 Nginx

从Nginx 官方网站下载并上传 nginx-1.22.1.tar.gz 到 /export/server 目录。

nginx: downloadicon-default.png?t=O83Ahttps://nginx.org/en/download.html

2. 安装并解压 Nginx

安装并解压 Nginx:

cd /export/server
tar -zxvf nginx-1.22.1.tar.gz
mv nginx-1.22.1 nginx
cd nginx
./configure --prefix=/export/server/nginx --with-http_mp4_module --with-http_flv_module --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_gunzip_module --with-file-aio
sudo make && make install
mkdir -p /export/server/nginx/logs

./configure 脚本后面可以跟许多参数来定制 Nginx 的配置,详情看官网:Building nginx from Sources。以下是一些常用的参数及其说明:

参数

说明

--prefix=PATH

指定 Nginx 安装目录,默认为 /usr/local/nginx

--sbin-path=PATH

指定 Nginx 可执行文件的路径,默认为 PREFIX/sbin/nginx

--conf-path=PATH

指定 Nginx 配置文件的路径,默认为 PREFIX/conf/nginx.conf

--error-log-path=PATH

指定错误日志文件的路径,默认为 PREFIX/logs/error.log

--http-log-path=PATH

指定访问日志文件的路径,默认为 PREFIX/logs/access.log

--pid-path=PATH

指定 PID 文件的路径,默认为 PREFIX/logs/nginx.pid

--lock-path=PATH

指定锁文件的路径,默认为 PREFIX/logs/nginx.lock

--user=USER

指定 Nginx 工作进程运行的用户,默认为 nobody

--group=GROUP

指定 Nginx 工作进程运行的用户组,默认为 nobody

--with-http_ssl_module

启用 SSL 支持

--with-http_v2_module

启用 HTTP/2 支持(需要 OpenSSL 1.0.2 或更高版本)

--with-http_gzip_static_module

启用 gzip 静态文件压缩支持

--with-http_realip_module

启用获取客户端真实 IP 地址的支持

--with-http_stub_status_module

启用状态页面模块,用于监控 Nginx 状态

--with-http_sub_module

启用响应内容替换模块

--with-http_dav_module

启用 WebDAV 支持

--with-http_flv_module

启用 FLV 视频流支持

--with-http_mp4_module

启用 MP4 视频流支持

--with-http_gunzip_module

启用 gunzip 模块,用于解压 gzip 压缩的内容

--with-http_auth_request_module

启用基于子请求的认证模块

--with-http_random_index_module

启用随机索引模块

--with-http_secure_link_module

启用安全链接模块

--with-http_degradation_module

启用降级模块

--with-http_perl_module

启用 Perl 模块(需要 Perl 5.6.1 或更高版本)

--with-mail

启用邮件代理模块

--with-mail_ssl_module

启用邮件代理模块的 SSL 支持

--with-stream

启用流媒体模块

--with-stream_ssl_module

启用流媒体模块的 SSL 支持

--with-stream_realip_module

启用流媒体模块的获取客户端真实 IP 地址支持

--with-stream_geoip_module

启用流媒体模块的 GeoIP 支持(需要 GeoIP 库)

--with-http_geoip_module

启用 HTTP 模块的 GeoIP 支持(需要 GeoIP 库)

--with-file-aio

启用文件异步 I/O 支持

--with-threads

启用线程池支持

--with-compat

启用兼容模式,允许使用第三方模块

--without-http

不编译 HTTP 模块

--without-http-cache

不编译 HTTP 缓存模块

--without-mail_pop3_module

不编译 POP3 邮件协议模块

--without-mail_imap_module

不编译 IMAP 邮件协议模块

--without-mail_smtp_module

不编译 SMTP 邮件协议模块

3. 配置环境变量

编辑 /etc/profile 文件,添加 Nginx 的环境变量:

sudo vi /etc/profile

G 跳转到文件尾行,$ 跳转到当前行末尾,i 编辑文件。在文件末尾新建一行添加:

export NGINX_HOME=/export/server/nginx
export PATH=$PATH:$NGINX_HOME/sbin

ESC 退出编辑,:wq 保存并退出。重新加载系统配置文件 /etc/profile,使其中的环境变量和设置立即生效:

source /etc/profile

4. 创建 Nginx 服务

创建并编辑 Nginx 服务文件:

sudo vi /lib/systemd/system/nginx.service

文件内容如下:

[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/export/server/nginx/sbin/nginx
ExecReload=/export/server/nginx/sbin/nginx -s reload
ExecStop=/export/server/nginx/sbin/nginx -s quit
PrivateTmp=true
[Third_party]
WantedBy=multi-user.target

ESC 退出编辑,:wq 保存并退出。

5. 启动 Nginx

启动 Nginx 并设置开机自启动:

# 启动nginx
systemctl start nginx
# 查看nginx状态
systemctl status nginx
# 设置开机自启动
systemctl enable nginx

Systemd 服务其他命令:

 

# 重启nginx
systemctl restart nginx
# 停止nginx服务
systemctl stop nginx

6. 验证 Nginx

访问本地服务器以验证 Nginx 是否正常运行:

curl http://localhost

;