Nginx介绍与安装实践指南

 更新时间:2026年05月20日 09:35:04   作者:難釋懷  
Nginx是一个轻量级的、高性能的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,本文给大家介绍Nginx介绍与安装实践指南,感兴趣的朋友跟随小编一起看看吧

一、前言:为什么是 Nginx?

在当今的互联网世界,无论是访问一个简单的个人博客,还是使用复杂的电商平台,你几乎都在和 Nginx 打交道。作为全球最流行的 Web 服务器和反向代理软件之一,Nginx 以其高性能、高并发、低资源消耗配置灵活的特点,成为了现代 Web 架构中不可或缺的基石。

Nginx(发音为 "engine x")是一个轻量级的、高性能的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。它以其高并发连接处理能力而闻名,特别适合于在高流量网站中使用。Nginx同时也是一个非常灵活的服务器,它可以用于许多非HTTP用途,例如作为负载均衡器。

Nginx的主要特点包括:

  • 高性能‌:Nginx能够处理成千上万的并发连接。
  • 事件驱动的架构‌:使用异步事件处理,提高了资源利用率。
  • 轻量级‌:相比其他Web服务器(如Apache),Nginx占用更少的内存和CPU资源。
  • 高可靠性‌:支持热部署,可以在不中断服务的情况下进行升级。
  • 灵活的配置‌:通过配置文件可以轻松地进行各种定制。
  • 反向代理‌:可以作为反向代理服务器,用于将请求转发到后端多个应用服务器。
  • 负载均衡‌:可以配置多个服务器,实现请求的负载均衡。

本文将带你从零开始,全面了解 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 的可执行文件。

七、结语

到此这篇关于Nginx介绍与安装的文章就介绍到这了,更多相关Nginx安装使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深度详解什么是Nginx正向代理与反向代理

    深度详解什么是Nginx正向代理与反向代理

    这篇文章主要介绍了Nginx正向代理与Nginx反向代理的区别,比较易懂,需要的朋友可以参考下
    2023-03-03
  • Ubuntu 22.04.1 LTS 编译安装 nginx-1.22.1的配置过程

    Ubuntu 22.04.1 LTS 编译安装 nginx-1.22.1的配置过程

    Ubuntu安装Nginx有两种方式,一种是通过命令的方式,这种方式安装的Nginx版本低,之前漏扫扫出来Nginx版本低,需要升级所以现在用编译的方式安装版本高点的,本文介绍Ubuntu22.04.1 LTS编译安装nginx1.22.1的配置过程,本文给大家介绍的非常详细,需要的朋友参考下吧
    2024-01-01
  • Nginx反向代理及负载均衡如何实现(基于linux)

    Nginx反向代理及负载均衡如何实现(基于linux)

    这篇文章主要介绍了Nginx反向代理及负载均衡如何实现(基于linux),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • nginx找到默认根目录(root html)的方法

    nginx找到默认根目录(root html)的方法

    这篇文章主要给大家介绍了nginx如何找到默认根目录(root html),文中给出详细的解决方法,通过代码示例讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2023-11-11
  • 本地HTTPS环境搭建的完整步骤记录

    本地HTTPS环境搭建的完整步骤记录

    这篇文章主要给大家介绍了关于本地HTTPS环境搭建的相关资料,文中通过示例代码将实现的步骤一步步介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友下面随着小编来一起学习学习吧
    2018-05-05
  • Nginx location和proxy_pass配置示例详解

    Nginx location和proxy_pass配置示例详解

    这篇文章主要介绍了Nginx location和proxy_pass配置的相关资料,本文详细探讨了Nginx配置中`location`和`proxy_pass`指令的不同组合方式及其对请求转发路径的影响,通过列举多种组合,展示了`location`匹配目录与`proxy_pass`地址路径如何相互作用,需要的朋友可以参考下
    2024-11-11
  • nginx隐藏响应头server信息和版本号信息的操作方法

    nginx隐藏响应头server信息和版本号信息的操作方法

    文章介绍了两种隐藏或修改Nginx响应头中server信息的方法:一种是通过修改配置文件全局段添加`server_tokens off`,另一种是重新编译Nginx并修改Banner信息,两种方法分别适用于传统部署和需要更灵活自定义的情况,需要的朋友可以参考下
    2025-02-02
  • 设置Nginx允许上传文件的大小的代码详解

    设置Nginx允许上传文件的大小的代码详解

    这篇文章主要给大家介绍了关于设置Nginx允许上传文件的大小的方法,文中通过示例代码介绍的非常详细,对大家学习Nginx有一定的参考学习价值,需要的朋友们下面来一起学习吧
    2024-01-01
  • Nginx配置https的实现

    Nginx配置https的实现

    本文主要介绍了Nginx配置https的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 详解nginx同一端口监听多个域名和同时监听http与https

    详解nginx同一端口监听多个域名和同时监听http与https

    这篇文章主要介绍了详解nginx同一端口监听多个域名和同时监听http与https的相关资料,需要的朋友可以参考下
    2017-05-05

最新评论