当前位置: 首页 > news >正文

一文带你了解nginx

在高并发的互联网应用场景中,一款高性能、轻量级的服务器工具是后端架构的核心基石,而 Nginx 正是凭借着高并发支撑、低资源消耗、功能丰富的特性,成为了开发者和运维人员的首选。无论是静态资源部署、虚拟主机配置,还是反向代理、负载均衡,Nginx 都能轻松应对,更是解决前后端跨域、实现动静分离的最佳实践方案。今天这篇文章,就从 Nginx 基础认知、安装配置、核心功能实战三个维度,带大家快速掌握 Nginx 的核心用法。

一、认识 Nginx:高性能的轻量级服务器

Nginx 是由俄罗斯程序员伊戈尔・西索夫开发的高性能 HTTP 服务器 / 反向代理服务器,同时也支持 IMAP/POP3 邮件代理,官方测试能支撑 5 万并发连接,且对 CPU、内存的资源消耗极低,运行稳定性拉满,这也是它能碾压传统服务器工具的核心优势。

和我们熟知的 Tomcat 相比,Nginx 的定位十分明确:仅支持静态项目发布,而 Tomcat 主打 Web 动态项目部署,二者搭配使用,正是企业级开发中 “动静分离” 的核心思路。

Nginx 的四大核心应用场景

  1. HTTP 静态服务器:独立提供 HTTP 服务,快速部署静态网页、图片、视频等资源,是静态资源的最优承载工具;
  2. 虚拟主机:在单台物理服务器上虚拟出多个网站,节省服务器资源,满足个人或企业多站点部署需求;
  3. 反向代理与负载均衡:应对高并发场景,将用户请求转发至后端服务器集群,实现负载平均分配,避免单台服务器宕机导致服务不可用;
  4. 解决跨域:轻松搞定前后端分离项目中的跨域问题,替代前端本地代理、后端 CORS 配置等方案,更高效且易维护。

而 Nginx 的最佳实践 —— 动静分离,则是融合了静态服务和反向代理的核心能力:将静态资源部署在 Nginx 上,动态请求通过 Nginx 转发至后端 Tomcat 等动态服务器,既减少了不必要的请求消耗,又能实现动静服务解耦,即便动态服务故障,静态资源也能正常访问。

二、Nginx 快速上手:安装、启动与配置文件详解

Nginx 的安装和使用非常轻量化,无需复杂的编译步骤,解压即可运行,Windows 和 Linux 系统操作逻辑基本一致,这里以 Windows 系统为例,带大家快速完成基础部署。

1. 下载与安装

Nginx 官方下载地址:http://nginx.org/en/download.html,提供主线版(Mainline)和稳定版(Stable),生产环境建议选择稳定版。下载后解压至本地目录,注意文件夹名称不要包含中文和空格,解压后即为 Nginx 的根目录,核心文件和目录结构清晰,无需额外配置。

2. 核心目录与文件解读

解压后的 Nginx 根目录包含多个关键文件夹,每个文件夹的作用各司其职,掌握后能大幅提升配置效率:

  • conf:所有配置文件的核心目录,其中nginx.conf是 Nginx 的主配置文件,日常所有功能配置均修改此文件;
  • html:默认站点目录,存放默认首页index.html和错误页面50x.html,静态网站可直接将资源放入此目录;
  • logs:日志目录,包含访问日志access.log、错误日志error.log和进程 PID 文件nginx.pid,便于问题排查;
  • temp:临时目录,存放 Nginx 运行时的临时文件;
  • nginx.exe:Windows 下的可执行程序,用于启动、停止 Nginx 服务。

3. 常用操作命令

在 Nginx 根目录下打开命令行,执行以下命令完成服务管理,简单易记:

  • 启动:start nginx
  • 关闭:nginx -s stop
  • 重启(配置修改后生效):nginx -s reload
  • 配置检查(避免配置错误导致服务故障):nginx -t

注意:

推荐在cmd中切换到nginx下载的目录里面使用指令,如下图

不推荐:这种情况有些指令无法使用

4. 启动验证

双击nginx.exe(推荐使用指令或执行启动命令后,打开浏览器输入http://localhosthttp://localhost:80,若看到 “Welcome to nginx!” 的欢迎页面,说明 Nginx 启动成功。

5. 核心配置文件nginx.conf结构

Nginx 的配置文件采用层级结构,主要分为四个核心部分,继承关系为:main(全局)→httpserverlocation,而upstream(负载均衡配置)不参与继承,是独立模块。

nginx

# 全局设置:与业务无关的基础配置,如进程数、日志、PID main { worker_processes 1; # 工作进程数,建议等于CPU线程数 error_log logs/error.log; # 全局错误日志 pid logs/nginx.pid; # PID文件路径 } # 工作模式:设置连接处理能力 events { worker_connections 1024; # 单个worker进程最大并发连接数 } # HTTP服务核心配置:可包含多个server,配置请求处理、mime类型等 http { include mime.types; # 引入媒体类型配置 default_type application/octet-stream; # 缺省数据类型 sendfile on; # 开启高性能数据处理 keepalive_timeout 65; # 连接保持时间 # 负载均衡配置:定义后端服务器集群 upstream 集群名称 { server 服务器IP:端口; } # 虚拟主机/站点配置:一个server对应一个站点,可配置多个 server { listen 80; # 监听端口 server_name localhost; # 主机名/域名/IP error_page 500 502 503 504 /50x.html; # 错误页面配置 # URL匹配配置:一个server可包含多个location,转发不同请求 location 请求路径 { root 资源根目录; # 静态资源目录 index 首页文件; # 默认首页 proxy_pass 转发地址; # 反向代理转发地址 } } }

这是 Nginx 配置的基础框架,所有核心功能的实现,都是在这个框架上进行细节修改。

三、Nginx 核心功能实战:从静态部署到负载均衡

掌握了基础的安装和配置结构后,接下来就是 Nginx 最实用的核心功能实战,从简单的静态网站部署,到虚拟主机、反向代理,再到高并发场景的负载均衡,一步步实现企业级应用配置。

实战 1:静态网站快速部署

这是 Nginx 最基础的用法,适合部署纯静态的网页、博客、官网等项目,步骤仅需 1 步:将静态项目的所有文件(包含index.html)直接复制到 Nginx 的html目录下,重启 Nginx 后,浏览器输入http://localhost:监听端口,即可直接访问项目。

实战 2:配置虚拟主机,单服务器部署多站点

通过虚拟主机,可在单台 Nginx 服务器上部署多个静态站点,通过不同端口区分,核心是在http模块中配置多个server节点,步骤如下:

  1. 创建站点目录:在 Nginx 根目录下创建两个文件夹campustravel,分别放入两个静态项目的所有资源;
  2. 修改配置文件:在nginx.confhttp模块中添加两个server节点,分别监听 81 和 82 端口;

nginx

# 校园网站点:监听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; # 默认首页 } }
  1. 验证访问:重启 Nginx 后,输入http://localhost:81访问校园网,http://localhost:82访问旅游网,实现单服务器多站点部署。

实战 3:反向代理,实现动静分离

反向代理是 Nginx 的核心能力之一,核心作用是将用户请求转发至后端动态服务器(如 Tomcat),实现动静分离。以 Tomcat 部署动态旅游网为例,配置步骤如下:

  1. 准备工作:将动态旅游网项目部署到 Tomcat 的ROOT目录,启动 Tomcat,通过http://localhost:8080能正常访问;
  2. 修改 Nginx 配置:在nginx.conf中配置upstreamserver,将 80 端口的请求转发至 Tomcat 的 8080 端口;

nginx

# 定义后端Tomcat集群(单台服务器也需配置) upstream tomcat-travel { server 127.0.0.1:8080; } # Nginx监听80端口,转发请求至Tomcat server { listen 80; server_name localhost; location / { proxy_pass http://tomcat-travel; # 反向代理转发地址 index index.html; } }
  1. 验证访问:重启 Nginx 后,浏览器输入http://localhost,Nginx 会自动将请求转发至 Tomcat,实现动态服务的代理访问,而静态资源仍由 Nginx 直接提供,完成动静分离。

实战 4:负载均衡,应对高并发场景

当网站访问量达到一定规模,单台 Tomcat 无法支撑并发(Tomcat 默认并发 300-500),此时需要搭建 Tomcat 服务器集群,通过 Nginx 实现负载均衡,将请求平均分配至多台 Tomcat,提升服务并发能力和稳定性。

负载均衡的三种实现方式
  1. DNS 负载均衡:通过 DNS 服务器映射多个 IP,随机分配请求,简单但可控性低;
  2. 硬件负载均衡:如 F5 设备,性能强但价格昂贵,适合大型企业;
  3. 软件负载均衡:如 Nginx、LVS、HAProxy,免费开源、配置灵活,是互联网企业的首选。
Nginx 负载均衡实战(Tomcat 集群)

准备工作:复制 3 台 Tomcat,修改端口分别为 8080、8081、8082,均部署旅游网项目,并在首页添加标记区分服务器,启动所有 Tomcat。

配置步骤:在 Nginx 的nginx.conf中修改upstreamserver,将请求转发至 3 台 Tomcat:

nginx

# 定义Tomcat集群,包含3台服务器 upstream tomcat-nginx { server 127.0.0.1:8080; server 127.0.0.1:8081; server 127.0.0.1:8082; } # Nginx监听80端口,实现负载均衡 server { listen 80; server_name localhost; location / { proxy_pass http://tomcat-nginx; # 转发至Tomcat集群 index index.html; } }

重启 Nginx 后,输入http://localhost不断刷新,会发现页面交替显示 3 台 Tomcat 的标记,说明请求被平均分配,负载均衡配置成功。

实战 5:Nginx 负载均衡策略优化

负载均衡策略:轮询,随机,一致性hash,最小连接数。

  • 轮询:多个服务器,按照顺序去访问,这样的话,每个服务器都能获得相同的请求次数。
  • 随机:根据随机算法获取目标服务器地址,进行请求。
  • 一致性hash:有相同hash码的请求,发送到 相同服务器上。
  • 最小连接数:将请求转发给连接数最少的目标服务器。

在实际项目中开发中,各个服务器性能各不相同,则均衡策略也不同,策略如下:

Nginx 默认采用轮询策略分配请求,即按顺序依次转发至后端服务器,而实际生产环境中,后端服务器性能各异,需要根据实际情况选择不同的负载均衡策略,Nginx 支持多种核心策略,可直接在upstream模块中配置:

  1. 权重策略(weight):为性能不同的服务器配置不同权重,权重越高,接收的请求越多,适合服务器性能不均的场景;

nginx

upstream tomcat-nginx { server 127.0.0.1:8080 weight=1; # 低性能服务器,权重1 server 127.0.0.1:8081 weight=2; # 中性能服务器,权重2 server 127.0.0.1:8082 weight=3; # 高性能服务器,权重3 }
  1. IP 哈希(ip_hash):根据客户端 IP 进行哈希计算,将同一客户端的请求转发至同一台服务器,实现会话保持,但性能较低,建议用 Token 替代;

nginx

upstream tomcat-nginx { ip_hash; # 开启IP哈希 server 127.0.0.1:8080 weight=1; server 127.0.0.1:8081 weight=2; }
  1. 最少连接数(least_conn):将请求转发至当前连接数最少的后端服务器,适合请求处理耗时不均的场景;

nginx

upstream tomcat-nginx { least_conn; # 开启最少连接数 server 127.0.0.1:8080; server 127.0.0.1:8081; }
  1. 响应时间最少(fair,第三方):统计后端服务器的平均请求处理时间,将请求转发至响应最快的服务器,需安装第三方模块。

四、正向代理 vs 反向代理:核心区别一次分清

在使用 Nginx 的过程中,很多人会混淆正向代理和反向代理,其实二者的核心区别只有一个:代理的对象不同,记住这一点,就能轻松区分:

  1. 正向代理:代理客户端,客户端主动配置代理服务器,通过代理访问目标服务器,目标服务器无法得知真实客户端的 IP,隐藏了客户端,典型场景如网络代理工具;
  2. 反向代理:代理服务器端,客户端直接访问代理服务器,由代理服务器转发请求至后端真实服务器,客户端无法得知真实服务器的 IP,隐藏了服务器集群,Nginx 的核心应用就是反向代理。

简单总结:代理哪端,就隐藏哪端

五、总结

Nginx 作为一款高性能的轻量级服务器工具,凭借着高并发、低资源消耗、配置灵活的特性,成为了后端架构中不可或缺的一环。从基础的静态资源部署,到虚拟主机、反向代理,再到高并发场景的负载均衡,Nginx 几乎覆盖了 Web 服务的所有核心需求,而 “动静分离” 的最佳实践,更是让它与 Tomcat 等动态服务器形成完美搭配,大幅提升服务性能和稳定性。

本文从 Nginx 的基础认知、安装配置到核心功能实战,讲解了最实用的企业级用法,所有配置均为基础且核心的内容,上手难度低,只要掌握nginx.conf的层级结构和核心模块,就能根据实际需求灵活配置。在实际生产环境中,Nginx 还能结合 SSL 配置实现 HTTPS、配置缓存提升访问速度、做应用层防火墙抵御攻击等,更多高级用法,大家可以在基础之上继续探索。

http://www.jsqmd.com/news/432850/

相关文章:

  • Win10 自用 Bat 脚本小工具
  • Docker:从入门到实战,解锁容器化部署新姿势
  • 安卓手机配置通用多屏协同及自动化脚本
  • 原生部署迁移至K8S
  • 全球化征途的“定海神针”:eRoad 如何重塑跨国企业的合规与效能基石
  • 2026年3月尼龙厂家权威推荐,高性能稳定性强行业优选 - 品牌鉴赏师
  • 2026年3月三氟乙胺厂家权威推荐,高性能稳定性强行业优选 - 品牌鉴赏师
  • xv6如何开始运行第一个用户进程 - Xwj
  • 免 Xcode 的 iOS 开发新选择?聊聊一款更轻量的 iOS 开发 IDE kxapp 快蝎
  • Lenovo在2026年世界移动通信大会推出自适应AI PC、模块化概念产品和Lenovo Qira
  • 2026年3月箱体钣金加工厂家推荐,各类箱体外壳定制加工 - 品牌鉴赏师
  • NTT DOCOMO BUSINESS与Airlinq建立全球物联网战略合作关系
  • SQL server高可用架构——Failover Cluster Instance
  • Centos配置RabbitMQ
  • 2026年2-溴三氟丙烯(BTP)厂家权威推荐,高性能稳定性强行业优选 - 品牌鉴赏师
  • OpenClaw 消息 Channel 快速部署:飞书、钉钉与主流 IM 一体化接入
  • 和小葛去石家庄。
  • 终将成为你 莉兹与青鸟 短评——2026.3.3 鲜花
  • 2026年3月甲基丙烯酸三氟乙酯厂家推荐,售后体系完善实用指南 - 品牌鉴赏师
  • Windows Terminal 配置 oh-my-posh
  • 2026年3月三氟丙基甲基环三硅氧烷(D3F)厂家权威推荐,高性能稳定性强行业优选 - 品牌鉴赏师
  • 2026年3月三氟乙醇厂家推荐,售后体系完善实用指南 - 品牌鉴赏师
  • 如何部署 newbee-mall?商城 + 管理后台 + 前台系统上线流程
  • 2026年3月锂电池材料厂家推荐,实力品牌深度解析采购无忧之选 - 品牌鉴赏师
  • 国产化 FTP 替代方案哪个好?
  • 头大毕设论文模板适配指南
  • 追踪丨人工智能产业融资分析
  • OpenClaw(小龙虾AI):零基础上手可执行AI智能体助手
  • 实时渲染可对接自有算力吗?私有部署实现路径解析
  • 实时渲染落地实操:精准破解企业核心业务痛点