目录
[一、Web 是什么?(本质定义)](#一、Web 是什么?(本质定义))
[二、Web 能干什么?(核心功能场景)](#二、Web 能干什么?(核心功能场景))
[三、Web 的核心原理是什么?(从「用户访问网页」拆解流程)](#三、Web 的核心原理是什么?(从「用户访问网页」拆解流程))
[1. 核心参与者](#1. 核心参与者)
[2. 完整流程(7 步走,通俗拆解)](#2. 完整流程(7 步走,通俗拆解))
[3. 动态服务的原理(扩展:Web 不止静态页面)](#3. 动态服务的原理(扩展:Web 不止静态页面))
[四、关键补充:Web 与 Nginx 的关系](#四、关键补充:Web 与 Nginx 的关系)
[4.1、Nginx 是什么?(一句话核心定义)](#4.1、Nginx 是什么?(一句话核心定义))
[4.2、Nginx 核心定位](#4.2、Nginx 核心定位)
[4.3.Nginx 工作原理(为什么能支撑高并发?)](#4.3.Nginx 工作原理(为什么能支撑高并发?))
一、Web 是什么?(本质定义)
Web 全称 World Wide Web(万维网),核心是:「基于 HTTP/HTTPS 协议,让用户通过浏览器(如 Chrome、Edge)访问服务器上的资源(网页、图片、视频、数据等)的分布式信息系统」。
简单说:
- Web = 「浏览器(用户端)」 + 「HTTP 协议(通信规则)」 + 「Web 服务器(如 Nginx,存储资源)」;
- 你现在用 Nginx 搭建的,就是 Web 系统中的「Web 服务器」部分,是整个 Web 生态的核心枢纽。
二、Web 能干什么?(核心功能场景)
Web 的核心价值是「跨设备、跨网络共享资源」,日常用的所有在线服务都基于 Web 实现,主要分 3 类:
-
展示静态资源(最基础)直接呈现服务器上的静态文件,比如:
- 企业官网(HTML+CSS+JS 编写的页面);
- 图片 / 视频分享(如个人相册、短视频平台的资源分发);
- 文档下载(如 PDF 手册、软件安装包)。→ 这正是你现在用 Nginx 能直接实现的功能(静态 Web 服务)。
-
提供动态交互服务(Web 的核心价值)结合后端程序(如 Java、Python、Node.js),实现用户与服务器的交互,比如:
- 登录注册(如微信网页版、电商平台登录);
- 数据查询(如百度搜索、股票行情查询);
- 提交数据(如发布朋友圈、网购下单)。→ 此时 Nginx 作为「反向代理」,接收用户请求后转发给后端程序,再把结果返回给用户。
-
传输加密数据(安全需求)通过 HTTPS 协议(Web 的安全扩展),实现加密通信,比如:
- 网上银行转账、支付(密码、银行卡号加密);
- 企业内部系统访问(防止数据被窃取)。→ 这需要 Nginx 配置 SSL 证书,开启 HTTPS 功能。
三、Web 的核心原理是什么?(从「用户访问网页」拆解流程)
Web 的本质是「客户端(浏览器)与服务器(如 Nginx)的请求 - 响应模型」,全程遵循 HTTP/HTTPS 协议,以「用户打开 http://192.168.1.100 为例」,完整流程如下:
1. 核心参与者
- 客户端:用户的浏览器(如 Chrome),负责发起请求、渲染结果;
- Web 服务器:你的 Nginx 服务器,负责接收请求、返回资源;
- 协议:HTTP(明文)/HTTPS(加密),定义双方的通信规则(比如 "请求格式是什么""响应怎么返回");
- 网络:互联网 / 局域网,负责传输请求和响应数据。
2. 完整流程(7 步走,通俗拆解)

逐步解释:
- 用户操作 :用户在浏览器地址栏输入
http://192.168.1.100,点击回车; - 浏览器发起请求 :浏览器按 HTTP 协议,组装一个「请求包」,包含:
- 请求方法(GET:获取资源);
- 目标地址(192.168.1.100 的 80 端口,HTTP 默认端口);
- 浏览器信息(如 Chrome 版本)、请求头等;
- 网络传输请求:请求包通过网络(如 WiFi、网线)发送到目标服务器(你的 Nginx 主机);
- Nginx 接收请求 :Nginx 监听 80 端口,收到请求后解析:
- 确认请求的是
192.168.1.100(匹配server_name localhost); - 确认请求路径是
/(匹配location /);
- 确认请求的是
- Nginx 处理请求 :根据配置规则,Nginx 去
/usr/local/nginx/html目录找默认首页index.html,读取文件内容,按 HTTP 协议组装「响应包」,包含:- 状态码(200 OK:请求成功);
- 响应头(如文件类型、字符编码);
- 响应体(
index.html的内容,即网页代码);
- 网络返回响应:响应包通过网络传回用户的浏览器;
- 浏览器渲染结果 :浏览器解析
index.html代码,加载 CSS/JS/ 图片等资源,最终呈现出可视化的网页; - 用户看到网页:用户看到 "Nginx Web 服务启动成功" 的页面,流程结束。
3. 动态服务的原理(扩展:Web 不止静态页面)
如果是动态服务(如登录电商平台),流程多一步「后端交互」:
- 浏览器请求
http://电商域名/login(提交用户名密码); - Nginx 作为反向代理,把请求转发给后端 Java/Python 程序;
- 后端程序验证用户名密码,查询数据库,返回 "登录成功" 的结果;
- Nginx 把后端结果包装成 HTTP 响应,返回给浏览器;
- 浏览器渲染 "登录成功" 页面。
四、关键补充:Web 与 Nginx 的关系
- Nginx 是「Web 服务器软件」,是 Web 系统的核心组件(负责处理请求、返回资源);
- 除了 Nginx,常见的 Web 服务器还有 Apache、IIS 等,但 Nginx 因高性能、高并发,成为现在的主流;
- Web 是整个生态(包含用户、浏览器、服务器、协议),而 Nginx 是实现 Web 服务的工具。
4.1、Nginx 是什么?(一句话核心定义)
Nginx(发音 "engine x")是高性能、轻量级的 HTTP/Web 服务器 + 反向代理服务器 + 负载均衡器,核心特点是「高并发、低内存占用、稳定性强」,是现在互联网场景中最主流的 Web 服务中间件。
简单类比:如果把「Web 服务」比作一家餐厅,Nginx 就是餐厅的前台 + 传菜员 + 调度员:
- 前台:接收用户(浏览器)的 "点餐请求"(HTTP 请求);
- 传菜员:把静态 "菜品"(HTML / 图片)直接端给用户,或把动态 "菜品" 请求转给后厨(后端程序如 Tomcat/Java);
- 调度员:如果后厨有多个厨师(多台后端服务器),负责把请求均匀分给不同厨师(负载均衡)。
4.2、Nginx 核心定位
从你的实操场景(编译安装、配置 nginx.service、搭建静态 Web 服务)来看,Nginx 解决了 3 个核心问题:
- 直接提供静态 Web 服务 (你当前的核心需求)无需依赖其他程序,直接把服务器上的 HTML/CSS/JS/ 图片等静态文件通过 HTTP 协议对外提供访问(比如你创建的
index.html页面),这是 Nginx 最基础也最擅长的能力。 - 解决 "连接处理" 的性能问题传统 Web 服务器(如 Apache)处理高并发时容易卡顿,而 Nginx 采用「异步非阻塞 I/O 模型」,一台普通服务器就能轻松支撑数万并发连接(比如电商秒杀、网站高峰期访问)。
- 作为 "中间层" 适配复杂场景当你的 Web 服务不止静态页面(比如有后端 Java/Python 程序、多台服务器),Nginx 可作为反向代理 / 负载均衡器,统一接收用户请求,再转发给后端,同时隐藏后端服务器的真实地址(提高安全性)。
4.3.Nginx 工作原理(为什么能支撑高并发?)
核心是「异步非阻塞 I/O + 多进程模型」,通俗拆解:
- 多进程模型 (你能通过
ps aux | grep nginx看到):- 主进程(master process):负责管理配置、启动 / 重启工作进程,不处理具体请求(安全且稳定);
- 工作进程(worker process):真正处理用户请求,数量可配置(通常等于 CPU 核心数,比如 4 核 CPU 配 4 个 worker 进程)。
- 异步非阻塞 I/O:传统服务器处理请求时,会 "等着" 请求处理完(比如等文件读取、网络传输),而 Nginx 的 worker 进程处理一个请求时,若需要等待(比如读文件),会先去处理其他请求,等资源就绪后再回来继续处理,不会浪费 CPU 资源 ------ 这也是 Nginx 能支撑高并发的关键。
五,实操案例,搭建nginx
1.准备环境
关闭防火墙 增强服务等

2.切换到opt目录下进行安装

准备nginx的依赖文件

开始解压安装 编译nginx
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_module

configure编译

没有报错代表成功

补全编译 + 安装(configure 成功后)
# 编译(-j 后跟CPU核心数,比如 -j2,加速编译)
make -j2
# 安装(生成 /usr/local/nginx 目录)
make install
让系统识别nginx的操作命令 ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

检查 nginx -t



使用抓包软件确认

添加 Nginx 系统服务
vim /lib/systemd/system/nginx.service
Unit
Description=nginx
After=network.target
Service
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
Install
WantedBy=multi-user.target
配置完后重启服务
