离线安装 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是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。[这里是图片001]https://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/[这里是图片003]https://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 Site[这里是图片006]https://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是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。[这里是图片009]https://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/[这里是图片011]https://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: download[这里是图片014]https://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
相关推荐
AI_56781 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
ccecw1 小时前
Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错
数据库·mysql
JH30731 小时前
达梦数据库与MySQL的核心差异解析:从特性到实践
数据库·mysql
数据知道2 小时前
PostgreSQL 核心原理:如何利用多核 CPU 加速大数据量扫描(并行查询)
数据库·postgresql
七夜zippoe2 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
麦聪聊数据3 小时前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构
未来之窗软件服务3 小时前
数据库优化提速(四)新加坡房产系统开发数据库表结构—仙盟创梦IDE
数据库·数据库优化·计算机软考
Fcy6483 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满3 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠4 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法