跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言大前端java

Nginx 入门详解:从基础配置到高性能实战

Nginx 核心概念、安装部署及四大应用场景(静态服务、虚拟主机、反向代理、负载均衡)。涵盖配置文件结构解析、常用命令操作及动静分离最佳实践,帮助开发者快速掌握高性能服务器配置与跨域解决方案。

灵魂伴侣发布于 2026/3/30更新于 2026/9/1068 浏览
Nginx 入门详解:从基础配置到高性能实战

一、Nginx 是什么?为何成为主流?

Nginx 是一款由俄罗斯程序员开发的高性能 HTTP 服务器、反向代理服务器,同时也支持 IMAP/POP3 邮件代理,官方测试能支撑5 万并发连接,且运行时对 CPU、内存的消耗极低,稳定性拉满,这也是它能取代传统服务器工具,成为互联网企业标配的核心原因。

很多人会把 Nginx 和 Tomcat 做对比,这里要明确一个核心区别:Nginx 仅能发布静态项目,适合处理 HTML、CSS、JS、图片等静态资源;而 Tomcat 擅长处理 Java Web 这类动态项目。在实际开发中,二者往往搭配使用,这也是后续会讲到的'动静分离'最佳实践。

简单来说,Nginx 就像服务器的'全能管家',既能自己打理静态资源的访问,又能把动态请求转发给专业的后端服务器,还能合理分配请求压力,让整个服务架构更高效、更稳定。

二、Nginx 的四大核心应用场景

Nginx 的功能强大且实用,核心应用场景主要有四个,覆盖了日常开发和部署的绝大多数需求,新手先掌握这四大场景,就能应对 80% 的使用场景。

1. 静态 HTTP 服务器

这是 Nginx 最基础的功能,它可以独立作为静态资源服务器,直接部署 HTML、CSS、JS、图片、视频等静态文件,访问速度极快。相比其他服务器,Nginx 处理静态资源的效率更高,配置也更简单,是静态网站部署的首选。

2. 虚拟主机

简单理解,虚拟主机就是在一台物理服务器上,虚拟出多个独立的网站,每个网站有自己的访问端口或域名,互不干扰。比如个人开发者只有一台服务器,却想部署多个个人网站,用 Nginx 配置虚拟主机就能轻松实现,极大节省了服务器资源。

3. 反向代理 + 负载均衡

当网站访问量增大,单台后端服务器无法承载并发请求时,就需要多台服务器组成集群,这时候 Nginx 的反向代理和负载均衡就派上了大用场。

  • 反向代理:客户端只需要访问 Nginx 的地址,由 Nginx 将请求转发给后端的业务服务器,客户端完全不知道后端的服务器集群存在,既保护了后端服务器的安全,又统一了访问入口。
  • 负载均衡:Nginx 会把客户端的请求平均分摊到后端的多台服务器上,避免某台服务器负载过高宕机,而另一台服务器闲置的情况,提升了整个服务的并发能力和稳定性。
4. 解决跨域问题

前后端分离开发是现在的主流模式,而浏览器的同源策略会导致跨域请求报错,这是前端开发者的常见痛点。Nginx 可以作为中间层,接收前端的请求,再转发给后端接口,由于服务器之间的请求不受同源策略限制,轻松解决跨域问题,无需后端做复杂的跨域配置。

最佳实践:动静分离

基于 Nginx 处理静态资源的优势和反向代理功能,衍生出了'动静分离'的最佳实践,这也是企业开发中最常用的架构设计。

  • 核心逻辑:将静态资源(HTML、CSS、图片等)直接部署在 Nginx 上,动态请求(接口调用、数据查询等)由 Nginx 转发给 Tomcat、Spring Boot 等后端服务器处理。
  • 核心优势:减少后端服务器的不必要请求消耗,提升请求响应速度;即使后端动态服务出现故障,静态资源的访问也不受影响,保证网站基础展示正常。

三、Nginx 快速上手:安装、启动与核心命令

Nginx 的安装和启动非常简单,Windows 和 Linux 系统操作类似,这里以 Windows 系统为例,教你快速完成 Nginx 的部署和基础操作,新手也能一步到位。

1. 下载与安装

Nginx 的官方下载地址:http://nginx.org/en/download.html,建议下载Stable version(稳定版),避免开发版的 bug 问题。

下载后是一个压缩包,直接解压即可使用,注意:解压路径中不要包含中文和空格,否则会导致 Nginx 启动失败。解压后会得到一个文件夹,里面包含 Nginx 的所有配置文件、可执行程序和默认站点目录。

文章配图

2. Nginx 核心目录详解

解压后的文件夹结构清晰,核心目录和文件一定要记牢,后续的配置和部署都围绕这些目录展开:

目录 / 文件核心作用
conf存放 Nginx 所有配置文件,核心是 nginx.conf
htmlNginx 默认的静态站点目录,存放默认首页和错误页面
logs日志目录,包含访问日志(access.log)和错误日志(error.log)
temp临时目录,存放 Nginx 运行时的临时文件
nginx.exeWindows 下的可执行程序,用于启动、停止 Nginx

文章配图

其中conf/nginx.conf是 Nginx 的主配置文件,日常的所有配置修改(如虚拟主机、反向代理)都在这个文件中进行。

3. 启动与验证
  • 启动方式:直接双击解压目录中的nginx.exe即可,Nginx 是多进程程序,启动后会在后台运行,不会有窗口弹出。

验证启动成功:打开浏览器,输入http://localhost或http://localhost:80,如果看到'Welcome to nginx!'的页面,说明启动成功。

文章配图

4. Nginx 核心命令

双击启动后,若需要停止、重启或检查配置,需要在Nginx 根目录下打开命令行,执行以下核心命令,这是日常使用的高频操作,建议熟记:

  • 启动 Nginx:start nginx
  • 强制关闭 Nginx:nginx -s stop
  • 平滑重启 Nginx(修改配置后生效):nginx -s reload
  • 检查配置文件语法是否正确:nginx -t

重要提示:修改任何 Nginx 配置后,都需要执行nginx -s reload命令,让配置生效,无需重新启动 Nginx。

四、Nginx 核心配置:看懂 nginx.conf 就够了

Nginx 的所有功能都通过配置文件实现,而核心配置文件nginx.conf的结构非常清晰,主要分为四个部分,且存在继承关系:main(全局设置)→http(服务器总配置)→server(虚拟主机/站点配置)→location(URL 匹配配置),还有一个独立的upstream(负载均衡配置),不参与继承。

main{
    # (全局设置)
    http{
        # 服务器
        upstream{} # (负载均衡服务器设置:主要用于负载均衡和设置一系列的后端服务器)
        server{ # (主机设置:主要用于指定主机和端口)
            location{}# (URL 匹配特点位置的设置)
        }
    }
}

简单理解配置文件的层级:一个 http 中可以有多个 server(多个站点 / 虚拟主机),一个 server 中可以有多个 location(多个 URL 匹配规则),以下是核心配置的通俗解读,新手重点掌握server和location即可。

server 继承 main, location 继承 server, upstream 即不会继承其他设置也不会被继承

一个 http 中可以放置多个 server 服务,每一个 server 都是一个单独的虚拟主机。

文章配图

1. main(全局配置)

和具体业务无关的基础配置,控制 Nginx 的运行规则,比如工作进程数、日志路径等:

worker_processes 1; # 工作进程数,建议值=CPU 的线程数,最小 1
error_log logs/error.log; # 全局错误日志路径
pid logs/nginx.pid; # Nginx 进程 ID 文件路径
2. events(工作模式配置)

控制 Nginx 的网络连接处理,核心是设置并发连接数:

events {
    worker_connections 1024; # 每个工作进程的最大并发连接数,建议 1 万 -5 万
}
3. http(服务器总配置)

所有和 HTTP 服务相关的公共配置,会被所有的 server 继承,比如请求类型、连接保持时间等:

http {
    include mime.types; # 引入媒体类型配置,识别 html、css 等文件
    default_type application/octet-stream; # 缺省数据类型
    sendfile on; # 开启高性能数据处理,提升静态资源访问速度
    keepalive_timeout 65; # 客户端与服务器的连接保持时间,单位秒
    # 这里可以配置多个 server、upstream
}
4. server(重点:站点 / 虚拟主机配置)

单个站点或虚拟主机的独立配置,核心是设置监听端口和主机名,一个 http 中可以配置多个 server,实现多站点部署:

server {
    listen 80; # 监听的端口,默认 80,虚拟主机可设置 81、82 等
    server_name localhost; # 主机名/域名,可填 localhost、IP 或自定义域名
    error_page 500 502 503 504 /50x.html; # 5xx 错误页面跳转
}
5. location(重点:URL 匹配配置)

server 内部的 URL 匹配规则,当 Nginx 接收到请求时,会根据请求的 URL 匹配对应的 location,然后执行相应的操作(如访问静态资源、转发请求),核心语法:

location 匹配规则 { 
    执行操作;
} 
# 示例:默认根路径匹配
location / { 
    root html; # 静态资源的根目录,对应 Nginx 的 html 文件夹
    index index.html index.htm; # 默认首页,访问根路径时优先加载的文件
}
6. upstream(负载均衡配置)

专门用于配置后端服务器集群,为负载均衡和反向代理提供后端服务器地址,核心语法:

upstream 自定义集群名 { 
    server 后端服务器 1 地址:端口;
    server 后端服务器 2 地址:端口;
} 
# 示例:配置 tomcat 集群
upstream tomcat-cluster { 
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

五、Nginx 实战:四大核心场景配置示例

看懂配置文件后,结合实际应用场景做配置,才能真正掌握 Nginx,以下是四大核心场景的极简配置示例,直接复制修改即可使用,新手也能快速上手。

实战 1:部署静态网站

将静态网站的所有文件(HTML、CSS、JS 等)复制到 Nginx 的html目录下,无需修改默认配置,启动 Nginx 后,访问http://localhost即可直接打开网站。

如果需要部署多个静态网站,可在html下创建子文件夹(如html/blog、html/shop),将对应网站文件放入,访问http://localhost/blog即可。

实战 2:配置虚拟主机(多站点部署)

需求:在一台服务器上,通过 81、82 端口分别部署两个静态网站(校园网、旅游网)。

  1. 在 Nginx 根目录下创建campus和travel文件夹,分别放入两个网站的静态文件;
  2. 执行nginx -t检查配置,无错误后执行nginx -s reload生效;

访问测试:http://localhost:81(校园网)、http://localhost:82(旅游网)。

文章配图

修改nginx.conf,添加两个 server 配置:

http {
    # 原有公共配置不变
    # 校园网:监听 81 端口
    server {
        listen 81;
        server_name localhost;
        location / {
            root campus; # 指向校园网文件目录
            index index.html; # 默认首页
        }
    }
    # 旅游网:监听 82 端口
    server {
        listen 82;
        server_name localhost;
        location / {
            root travel; # 指向旅游网文件目录
            index index.html; # 默认首页
        }
    }
}
实战 3:配置反向代理(解决跨域 / 转发动态请求)

需求:将 Nginx 的 80 端口请求,转发给本地 8080 端口的 Tomcat 动态项目(旅游网),同时解决前端跨域问题。修改nginx.conf的 server 配置,添加proxy_pass(反向代理目标地址):

http {
    # 配置后端 Tomcat 集群(单台也可配置)
    upstream tomcat-travel {
        server 127.0.0.1:8080;
    }
    server {
        listen 80;
        server_name localhost;
        location / {
            proxy_pass http://tomcat-travel; # 转发请求到后端 Tomcat
            index index.html;
        }
    }
}

配置生效后,访问http://localhost,Nginx 会自动将请求转发给http://localhost:8080的 Tomcat 项目,前端直接请求 Nginx 地址即可解决跨域。

文章配图

实战 4:配置负载均衡(分担后端服务器压力)

需求:后端有 3 台 Tomcat 服务器(8080、8081、8082),通过 Nginx 实现请求的平均分配,提升并发能力。修改nginx.conf,配置 upstream 集群和反向代理:

http {
    # 配置 Tomcat 集群,添加 3 台服务器地址
    upstream tomcat-cluster {
        server 127.0.0.1:8080;
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
    }
    server {
        listen 80;
        server_name localhost;
        location / {
            proxy_pass http://tomcat-cluster; # 转发请求到集群
            index index.html;
        }
    }
}

配置生效后,访问http://localhost,Nginx 会默认以轮询的方式,将请求依次分配给 8080、8081、8082 的 Tomcat 服务器,实现负载均衡。

同时打开三个浏览器窗口查看不同端口返回结果。

文章配图 文章配图 文章配图 文章配图

六、Nginx 负载均衡的常用策略

默认的轮询策略适合后端服务器性能一致的情况,而实际开发中,后端服务器的配置(CPU、内存)往往不同,这时候就需要根据实际情况选择负载均衡策略,Nginx 支持多种策略,核心常用的有以下 4 种:

1. 轮询(默认)

请求按顺序依次转发给后端服务器,每个服务器的请求次数相同,无需额外配置,适合后端服务器性能一致的场景。

2. 权重策略(weight)

给性能更好的服务器设置更高的权重,权重值越大,接收的请求越多,适合后端服务器性能不一致的场景:

upstream tomcat-cluster {
    server 127.0.0.1:8080 weight=1; # 权重 1,接收 1 份请求
    server 127.0.0.1:8081 weight=2; # 权重 2,接收 2 份请求
    server 127.0.0.1:8082 weight=3; # 权重 3,接收 3 份请求
}
3. IP 哈希(ip_hash)

根据客户端的 IP 地址进行哈希计算,将同一个客户端的所有请求转发给同一台后端服务器,实现会话保持,适合需要保存用户会话的场景:

upstream tomcat-cluster {
    ip_hash; # 开启 IP 哈希策略
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}
4. 最少连接数(least_conn)

Nginx 会将请求转发给当前连接数最少的后端服务器,适合请求处理时间不一致、并发波动较大的场景:

upstream tomcat-cluster {
    least_conn; # 开启最少连接数策略
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

七、正向代理 vs 反向代理:别再搞混了

很多新手会把正向代理和反向代理弄混,其实二者的核心区别只有一个:代理的对象不同,记住这一点,就能轻松区分。

正向代理:代理客户端

正向代理是客户端主动配置代理服务器,由代理服务器代替客户端向目标服务器发送请求,目标服务器不知道真实的客户端是谁,只能看到代理服务器的地址。

  • 核心特点:隐藏真实客户端,保护客户端隐私和安全;
  • 常见场景:网络代理工具、翻墙工具。
反向代理:代理服务器

反向代理是服务器端配置,客户端直接访问代理服务器(Nginx),由代理服务器代替客户端向后端服务器集群发送请求,客户端不知道真实的后端服务器是谁。

  • 核心特点:隐藏真实服务端,保护后端服务器安全,同时实现负载均衡;
  • 常见场景:企业网站的反向代理、负载均衡配置。

一句话总结:代理哪端,就隐藏哪端,正向代理隐藏客户端,反向代理隐藏服务端。

八、总结

Nginx 作为一款高性能的服务器工具,核心优势在于高并发、低消耗、配置简单、功能全面,从静态资源部署到反向代理,从解决跨域到负载均衡,几乎覆盖了后端部署的所有核心需求。

对于新手来说,无需一开始就深究复杂的配置,先掌握安装启动、核心命令、四大应用场景和基础配置,通过实际操作熟悉后,再逐步学习高级策略(如缓存、SSL 加密、限流)。Nginx 的配置看似繁琐,但核心逻辑非常清晰,只要多练、多试,就能快速掌握,成为后端部署的'得力助手'。

目录

  1. 一、Nginx 是什么?为何成为主流?
  2. 二、Nginx 的四大核心应用场景
  3. 1. 静态 HTTP 服务器
  4. 2. 虚拟主机
  5. 3. 反向代理 + 负载均衡
  6. 4. 解决跨域问题
  7. 最佳实践:动静分离
  8. 三、Nginx 快速上手:安装、启动与核心命令
  9. 1. 下载与安装
  10. 2. Nginx 核心目录详解
  11. 3. 启动与验证
  12. 4. Nginx 核心命令
  13. 四、Nginx 核心配置:看懂 nginx.conf 就够了
  14. 1. main(全局配置)
  15. 2. events(工作模式配置)
  16. 3. http(服务器总配置)
  17. 4. server(重点:站点 / 虚拟主机配置)
  18. 5. location(重点:URL 匹配配置)
  19. 示例:默认根路径匹配
  20. 6. upstream(负载均衡配置)
  21. 示例:配置 tomcat 集群
  22. 五、Nginx 实战:四大核心场景配置示例
  23. 实战 1:部署静态网站
  24. 实战 2:配置虚拟主机(多站点部署)
  25. 实战 3:配置反向代理(解决跨域 / 转发动态请求)
  26. 实战 4:配置负载均衡(分担后端服务器压力)
  27. 六、Nginx 负载均衡的常用策略
  28. 1. 轮询(默认)
  29. 2. 权重策略(weight)
  30. 3. IP 哈希(ip_hash)
  31. 4. 最少连接数(least_conn)
  32. 七、正向代理 vs 反向代理:别再搞混了
  33. 正向代理:代理客户端
  34. 反向代理:代理服务器
  35. 八、总结

更多推荐文章

查看全部
  • Python 入门基础语法与核心概念详解
  • 区块链共识机制深度解析:PBFT、Tendermint 与 DAG
  • JDK 21 开发环境配置指南
  • ReactiveCocoa 2 核心概念与实战指南
  • Neo4j 数据库运行时连接失败解决方案
  • KingbaseES 数据库智能 SQL 防护机制与实战配置
  • OpenClaw 本地部署与 QQ 机器人接入指南
  • Linux 信号处理流程与操作系统中断机制解析
  • 扩散模型(Diffusion Model)原理与图像生成实战
  • Python 环境变量配置指南
  • Tachiyomi 开源漫画阅读器使用指南
  • 传统线程同步通讯技术实现
  • 前端独立产品设计全流程:掌握三大 AI 设计 Skill
  • LangChain 大语言模型开发框架入门与实战指南
  • uniapp+python微信小程序毕业生招聘平台
  • 构建进攻性网络安全防护策略
  • RabbitMQ 事务机制与消息限流实战详解
  • VS Code 远程 SSH 连接下 Copilot 无法使用 Claude Agent 问题修复
  • Java 8 Lambda 表达式与 Stream 流实战解析
  • Spring Boot 实现通用 HTTP 代理服务

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online