Nginx介绍与安装
在当今的互联网世界,无论是访问一个简单的个人博客,还是使用复杂的电商平台,你几乎都在和Nginx打交道。作为全球最流行的 Web 服务器和反向代理软件之一,Nginx 以其高性能、高并发、低资源消耗和配置灵活的特点,成为了现代 Web 架构中不可或缺的基石。本文将带你从零开始,全面了解 Nginx 是什么、能做什么,并手把手教你完成在 Linux 系统上的安装与初步验证。💡核心价值掌握 Ngin
一、前言:为什么是 Nginx?
在当今的互联网世界,无论是访问一个简单的个人博客,还是使用复杂的电商平台,你几乎都在和 Nginx 打交道。作为全球最流行的 Web 服务器和反向代理软件之一,Nginx 以其高性能、高并发、低资源消耗和配置灵活的特点,成为了现代 Web 架构中不可或缺的基石。
本文将带你从零开始,全面了解 Nginx 是什么、能做什么,并手把手教你完成在 Linux 系统上的安装与初步验证。
💡 核心价值:
掌握 Nginx 的基础,是你迈向高性能 Web 服务和微服务架构的第一步!
二、Nginx 是什么?
2.1 基本定义
Nginx(发音为 “engine-x”)是一款开源的、高性能的 HTTP 服务器、反向代理服务器,同时也支持 IMAP/POP3/SMTP 等协议。它由俄罗斯开发者 Igor Sysoev 于 2004 年首次发布,旨在解决 C10K(即单机处理一万并发连接)问题。
2.2 核心优势
- 高并发:基于异步、非阻塞的事件驱动模型(epoll/kqueue),能够轻松应对数万甚至数十万的并发连接。
- 低内存消耗:相比传统的 Apache,Nginx 在处理静态文件和高并发请求时,内存占用极低。
- 高性能:静态文件处理速度极快,是理想的静态资源服务器。
- 模块化设计:功能通过模块扩展,核心保持精简,稳定性和安全性高。
- 热部署:支持在不中断服务的情况下更新配置或升级版本。
三、Nginx 能做什么?(核心应用场景)
Nginx 的用途非常广泛,以下是几个最常见的场景:
| 场景 | 描述 |
|---|---|
| 1. Web 服务器 | 直接对外提供服务,高效地处理和返回 HTML、CSS、JavaScript、图片 等静态资源。 |
| 2. 反向代理 | 接收客户端请求,并将其转发给后端的应用服务器(如 Tomcat, Spring Boot, Node.js)。对外,客户端只看到 Nginx;对内,Nginx 隐藏了后端服务器的细节。这是微服务架构中最常见的用法。 |
| 3. 负载均衡 | 当后端有多个应用服务器实例时,Nginx 可以作为流量分发器,将请求按照轮询、加权轮询、IP哈希等策略分配到不同的服务器上,从而提高系统的整体吞吐量和可用性。 |
| 4. 动静分离 | 将网站的动态请求(需要后端计算)和静态请求(直接读取文件)分开处理。Nginx 处理所有静态请求,动态请求则代理给后端应用服务器。这能极大减轻后端压力。 |
| 5. 安全与缓存 | 可以配置 SSL/TLS 实现 HTTPS 加密,也可以作为缓存层,缓存后端响应,减少对后端的重复请求。 |
四、动手实践:Nginx 安装(以 CentOS 为例)
我们将通过两种主流方式来安装 Nginx:使用官方 YUM 源(推荐) 和 源码编译安装。
4.1 方式一:使用 YUM 源安装(简单快捷)
这是最推荐给初学者的方式,因为它简单、快速,并且便于后续的更新和管理。
步骤 1:安装 EPEL 源
由于 Nginx 不在 CentOS 默认的 YUM 源中,我们需要先安装 EPEL(Extra Packages for Enterprise Linux)扩展源。
sudo yum install -y epel-release
步骤 2:安装 Nginx
sudo yum install -y nginx
步骤 3:启动并设置开机自启
# 启动 Nginx
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx
# 查看状态
sudo systemctl status nginx
4.2 方式二:源码编译安装(高度定制)
如果你需要特定的模块或对 Nginx 进行深度定制,可以选择从源码编译安装。
步骤 1:安装编译依赖
sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
gcc: C语言编译器。pcre/pcre-devel: 用于支持正则表达式(rewrite模块必需)。zlib/zlib-devel: 用于支持 gzip 压缩。openssl/openssl-devel: 用于支持 HTTPS。
步骤 2:下载并解压 Nginx 源码
前往 Nginx 官网 获取最新稳定版源码链接。
# 下载 (以 1.26.1 为例)
wget https://nginx.org/download/nginx-1.26.1.tar.gz
# 解压
tar -zxvf nginx-1.26.1.tar.gz
cd nginx-1.26.1
步骤 3:配置编译选项
./configure \
--prefix=/usr/local/nginx \ # 安装目录
--with-http_ssl_module \ # 启用SSL模块
--with-http_v2_module \ # 启用HTTP/2
--with-http_stub_status_module # 启用状态信息模块
你可以根据需要添加或移除模块。
步骤 4:编译并安装
make && sudo make install
步骤 5:启动 Nginx
# 进入安装目录
cd /usr/local/nginx
# 启动
sudo sbin/nginx
# 重载配置(平滑重启)
sudo sbin/nginx -s reload
五、验证安装是否成功
无论采用哪种安装方式,最后一步都是验证 Nginx 是否正常工作。
-
确保防火墙开放 80 端口
# 对于 firewalld sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --reload -
在浏览器中访问你的服务器 IP 地址
http://<your_server_ip>
如果一切顺利,你应该会看到 “Welcome to nginx!” 的默认欢迎页面。这标志着你的 Nginx 已经成功安装并运行!
六、Nginx 基础目录结构(YUM 安装)
了解 Nginx 的目录结构对于后续的配置和维护至关重要。
/etc/nginx/: 主配置文件目录。nginx.conf: 主配置文件,所有核心配置都在这里。conf.d/: 存放额外的配置文件(通常以.conf结尾),会被主配置文件自动包含。
/usr/share/nginx/html/: 默认的 Web 根目录,存放网站的静态文件。/var/log/nginx/: 日志文件目录。access.log: 访问日志。error.log: 错误日志。
/usr/sbin/nginx: Nginx 的可执行文件。
七、结语
感谢您的阅读!如果你有任何疑问或想要分享的经验,请在评论区留言交流!
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)