web和Nginx的搭建

目录

[一、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 工作原理(为什么能支撑高并发?))

五,实操案例,搭建nginx


一、Web 是什么?(本质定义)

Web 全称 World Wide Web(万维网),核心是:「基于 HTTP/HTTPS 协议,让用户通过浏览器(如 Chrome、Edge)访问服务器上的资源(网页、图片、视频、数据等)的分布式信息系统」。

简单说:

  • Web = 「浏览器(用户端)」 + 「HTTP 协议(通信规则)」 + 「Web 服务器(如 Nginx,存储资源)」;
  • 你现在用 Nginx 搭建的,就是 Web 系统中的「Web 服务器」部分,是整个 Web 生态的核心枢纽。

二、Web 能干什么?(核心功能场景)

Web 的核心价值是「跨设备、跨网络共享资源」,日常用的所有在线服务都基于 Web 实现,主要分 3 类:

  1. 展示静态资源(最基础)直接呈现服务器上的静态文件,比如:

    • 企业官网(HTML+CSS+JS 编写的页面);
    • 图片 / 视频分享(如个人相册、短视频平台的资源分发);
    • 文档下载(如 PDF 手册、软件安装包)。→ 这正是你现在用 Nginx 能直接实现的功能(静态 Web 服务)。
  2. 提供动态交互服务(Web 的核心价值)结合后端程序(如 Java、Python、Node.js),实现用户与服务器的交互,比如:

    • 登录注册(如微信网页版、电商平台登录);
    • 数据查询(如百度搜索、股票行情查询);
    • 提交数据(如发布朋友圈、网购下单)。→ 此时 Nginx 作为「反向代理」,接收用户请求后转发给后端程序,再把结果返回给用户。
  3. 传输加密数据(安全需求)通过 HTTPS 协议(Web 的安全扩展),实现加密通信,比如:

    • 网上银行转账、支付(密码、银行卡号加密);
    • 企业内部系统访问(防止数据被窃取)。→ 这需要 Nginx 配置 SSL 证书,开启 HTTPS 功能。

三、Web 的核心原理是什么?(从「用户访问网页」拆解流程)

Web 的本质是「客户端(浏览器)与服务器(如 Nginx)的请求 - 响应模型」,全程遵循 HTTP/HTTPS 协议,以「用户打开 http://192.168.1.100 为例」,完整流程如下:

1. 核心参与者
  • 客户端:用户的浏览器(如 Chrome),负责发起请求、渲染结果;
  • Web 服务器:你的 Nginx 服务器,负责接收请求、返回资源;
  • 协议:HTTP(明文)/HTTPS(加密),定义双方的通信规则(比如 "请求格式是什么""响应怎么返回");
  • 网络:互联网 / 局域网,负责传输请求和响应数据。
2. 完整流程(7 步走,通俗拆解)

逐步解释:

  1. 用户操作 :用户在浏览器地址栏输入 http://192.168.1.100,点击回车;
  2. 浏览器发起请求 :浏览器按 HTTP 协议,组装一个「请求包」,包含:
    • 请求方法(GET:获取资源);
    • 目标地址(192.168.1.100 的 80 端口,HTTP 默认端口);
    • 浏览器信息(如 Chrome 版本)、请求头等;
  3. 网络传输请求:请求包通过网络(如 WiFi、网线)发送到目标服务器(你的 Nginx 主机);
  4. Nginx 接收请求 :Nginx 监听 80 端口,收到请求后解析:
    • 确认请求的是 192.168.1.100(匹配 server_name localhost);
    • 确认请求路径是 /(匹配 location /);
  5. Nginx 处理请求 :根据配置规则,Nginx 去 /usr/local/nginx/html 目录找默认首页 index.html,读取文件内容,按 HTTP 协议组装「响应包」,包含:
    • 状态码(200 OK:请求成功);
    • 响应头(如文件类型、字符编码);
    • 响应体(index.html 的内容,即网页代码);
  6. 网络返回响应:响应包通过网络传回用户的浏览器;
  7. 浏览器渲染结果 :浏览器解析 index.html 代码,加载 CSS/JS/ 图片等资源,最终呈现出可视化的网页;
  8. 用户看到网页:用户看到 "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 个核心问题:

  1. 直接提供静态 Web 服务 (你当前的核心需求)无需依赖其他程序,直接把服务器上的 HTML/CSS/JS/ 图片等静态文件通过 HTTP 协议对外提供访问(比如你创建的 index.html 页面),这是 Nginx 最基础也最擅长的能力。
  2. 解决 "连接处理" 的性能问题传统 Web 服务器(如 Apache)处理高并发时容易卡顿,而 Nginx 采用「异步非阻塞 I/O 模型」,一台普通服务器就能轻松支撑数万并发连接(比如电商秒杀、网站高峰期访问)。
  3. 作为 "中间层" 适配复杂场景当你的 Web 服务不止静态页面(比如有后端 Java/Python 程序、多台服务器),Nginx 可作为反向代理 / 负载均衡器,统一接收用户请求,再转发给后端,同时隐藏后端服务器的真实地址(提高安全性)。

4.3.Nginx 工作原理(为什么能支撑高并发?)

核心是「异步非阻塞 I/O + 多进程模型」,通俗拆解:

  1. 多进程模型 (你能通过 ps aux | grep nginx 看到):
    • 主进程(master process):负责管理配置、启动 / 重启工作进程,不处理具体请求(安全且稳定);
    • 工作进程(worker process):真正处理用户请求,数量可配置(通常等于 CPU 核心数,比如 4 核 CPU 配 4 个 worker 进程)。
  2. 异步非阻塞 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

配置完后重启服务

相关推荐
z***I3942 小时前
Docker书籍
运维·docker·容器
小嘟嘟26792 小时前
Linux-奇怪的No such file or directory
linux·运维·服务器
shizhan_cloud2 小时前
iSCSI 服务器
linux·运维
百***61873 小时前
linux 设置tomcat开机启动
linux·运维·tomcat
春日见3 小时前
claude code基本介绍
linux·运维·服务器·ros2·moveit2
暴力求解4 小时前
Linux基础开发工具 编译器gcc/g++
linux·运维·服务器
秋邱4 小时前
企业级部署升级:Nginx 反向代理 + ELK 日志监控,让成绩预测平台稳定可追溯
运维·jenkins
视觉震撼5 小时前
本地机器远程连接配置与文件传输可行性检测工具
运维·服务器·网络·windows·php·apache
yuanManGan5 小时前
走进Linux的世界:虚拟内存空间
linux·运维·服务器