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

Web基础、HTTP/HTTPS协议与Nginx详解

一、Web基本概念

1.1 什么是Web?

Web(万维网)是运行在互联网上的超文本信息系统,它依赖于HTTP/HTTPS协议实现浏览器与服务器之间的交互,具有以下特点:

  • ​分布式​​:资源分布在世界各地的服务器上
  • ​跨平台​​:只要有浏览器就能访问资源
  • ​无状态​​:每次HTTP请求都是独立的(除非使用Cookie/Session)

1.2 B/S架构模型

Web采用​​Browser/Server架构​​:

  • ​Browser(浏览器)​​:用户入口,发送请求、渲染页面
  • ​Server(服务器)​​:接收请求,返回资源或动态内容
graph LRA[用户浏览器] --> B[Web服务器]B --> C[应用服务器]C --> D[数据库]D --> C --> B --> A

1.3 Web请求与响应过程

  1. 用户在浏览器输入URL
  2. DNS解析域名为IP地址
  3. 建立TCP连接(3次握手)
  4. 发送HTTP请求(GET/POST)
  5. 服务器处理请求:
    • Web服务器处理静态资源
    • 动态请求转发到应用服务器
    • 应用服务器查询数据库
  6. 返回HTTP响应
  7. 浏览器渲染页面

1.4 静态与动态资源

类型特点示例
​静态资源​直接返回,无需处理HTML/CSS/图片/JS文件
​动态资源​需服务器端代码生成PHP/Python/Java/Ruby脚本

1.5 Web发展阶段

  • ​Web 1.0​​:只读静态页面
  • ​Web 2.0​​:用户可生成内容,AJAX技术普及
  • ​Web 3.0​​:语义网、区块链、去中心化

二、HTTP与HTTPS协议

2.1 HTTP与HTTPS区别

特性HTTPHTTPS
​安全性​明文传输,不安全SSL/TLS加密,防止中间人攻击
​端口​80443
​性能​更快稍慢(因加密解密开销)
​证书​不需要需要CA颁发的SSL证书

2.2 HTTPS握手流程

  1. ​Client Hello​​:客户端发送支持的加密算法列表
  2. ​Server Hello​​:服务器选择加密算法,返回SSL证书
  3. ​证书验证​​:客户端验证证书有效性
  4. ​密钥协商​​:双方生成临时对称密钥
  5. ​加密通信​​:使用对称密钥加密后续数据
sequenceDiagramparticipant Clientparticipant ServerClient->>Server: Client Hello(支持算法)Server->>Client: Server Hello + 证书Client->>Client: 验证证书Client->>Server: 密钥协商Server->>Client: 确认加密Note right of Client: 开始加密通信

2.3 HTTP状态码详解

状态码类别常见状态码说明
1xx信息响应100 Continue服务器已收到请求头
2xx成功200 OK请求成功
201 Created资源创建成功
3xx重定向301 Moved Permanently资源永久移动
302 Found资源临时移动
4xx客户端错误400 Bad Request请求语法错误
401 Unauthorized需要身份验证
403 Forbidden禁止访问
404 Not Found资源不存在
5xx服务器错误500 Internal Error服务器内部错误
502 Bad Gateway网关错误
504 Gateway Timeout网关超时

三、Nginx详解

3.1 Nginx简介

Nginx(发音为"engine x")是高性能的HTTP和反向代理服务器,特点:

  • ​高并发​​:单机支持3-5万并发连接
  • ​低资源​​:内存占用少(约Apache的1/5)
  • ​热部署​​:支持不停机更新配置
  • ​模块化​​:丰富的扩展模块

官网:nginx.org

3.2 Nginx vs Apache

特性NginxApache
​架构​事件驱动多进程/多线程
​资源消耗​低(约Apache的1/5)较高
​静态文件​效率极高一般
​反向代理​优势明显一般
​动态内容​需通过FastCGI转发原生支持
​配置方式​简洁高效.htaccess分散配置

3.3 Nginx进程结构

graph TDA[Master Process] --> B[Worker Process 1]A --> C[Worker Process 2]A --> D[Worker Process N]B --> E[处理客户端请求]C --> F[处理客户端请求]D --> G[处理客户端请求]
  • ​Master进程​​:

    • 读取并验证配置
    • 管理Worker进程
    • 平滑升级/重载配置
  • ​Worker进程​​:

    • 实际处理网络请求
    • 数量建议设置为CPU核心数
    • 相互独立,避免竞争

四、Nginx安装与配置

4.1 安装Nginx

CentOS安装步骤:

# 安装EPEL仓库
sudo yum install epel-release# 安装Nginx
sudo yum install nginx# 启动Nginx
sudo systemctl start nginx# 设置开机自启
sudo systemctl enable nginx

4.2 Nginx配置文件结构

主配置文件:/etc/nginx/nginx.conf

# 全局配置段
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;# 事件配置段
events {worker_connections 1024;
}# HTTP配置段
http {include /etc/nginx/mime.types;default_type application/octet-stream;# 虚拟主机配置server {listen 80;server_name example.com;location / {root /usr/share/nginx/html;index index.html;}}
}

4.3 虚拟主机配置

​基于端口的虚拟主机​​:

server {listen 8080;server_name localhost;root /var/www/port8080;index index.html;
}server {listen 8081;server_name localhost;root /var/www/port8081;index index.html;
}

​基于域名的虚拟主机​​:

server {listen 80;server_name site1.example.com;root /var/www/site1;
}server {listen 80;server_name site2.example.com;root /var/www/site2;
}

五、Nginx实战

5.1 基于端口的虚拟主机配置

  1. 创建目录结构:
sudo mkdir -p /var/www/{port8080,port8081}
  1. 创建测试页面:
# 端口8080的页面
echo "<h1>Port 8080 Site</h1>" | sudo tee /var/www/port8080/index.html# 端口8081的页面
echo "<h1>Port 8081 Site</h1>" | sudo tee /var/www/port8081/index.html
  1. 配置Nginx:
http {server {listen 8080;root /var/www/port8080;index index.html;}server {listen 8081;root /var/www/port8081;index index.html;}
}
  1. 重启Nginx:
sudo systemctl restart nginx
  1. 访问测试:
curl http://localhost:8080
curl http://localhost:8081

5.2 日志分析实战

分析Nginx访问日志(/var/log/nginx/access.log):

​统计访问次数最多的IP​​:

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10

​统计HTTP状态码分布​​:

awk '{print $9}' access.log | sort | uniq -c | sort -nr

​统计每小时请求量​​:

awk '{print $4}' access.log | cut -d: -f1,2 | uniq -c

​统计恶意登录尝试(失败密码)​​:

awk '/Failed password/{ip[$11]++}END{for(i in ip)print ip[i],i}' /var/log/secure

六、总结

通过本文我们深入探讨了:

  1. Web的基本架构和工作原理
  2. HTTP/HTTPS协议的核心差异与工作流程
  3. Nginx的高性能特性及与Apache的对比
  4. Nginx的安装配置与实战应用

Nginx凭借其​​高并发处理能力​​、​​低资源消耗​​和​​灵活的配置​​,已成为现代Web架构的核心组件。无论是作为静态资源服务器、反向代理还是负载均衡器,Nginx都能提供卓越的性能和稳定性。

掌握Nginx的配置优化和日志分析技巧,对提升网站性能和排查问题至关重要。建议通过实际项目不断练习,深入理解其工作机制。


文章转载自:

http://CiriVlyA.kghss.cn
http://UOQ9D2DG.kghss.cn
http://ooiTPWVx.kghss.cn
http://Uo9BUG2f.kghss.cn
http://vWmU1gI0.kghss.cn
http://dfJJRQpj.kghss.cn
http://55aJ7TF9.kghss.cn
http://VDUbebhq.kghss.cn
http://pHc9PtLf.kghss.cn
http://NeEXVK0I.kghss.cn
http://hT1ISFqt.kghss.cn
http://6Ht1YU42.kghss.cn
http://qcRaGq0U.kghss.cn
http://xBo6tLHZ.kghss.cn
http://XsXoN1H1.kghss.cn
http://Tb1S3Jhx.kghss.cn
http://aJIXVx05.kghss.cn
http://3RS0bngt.kghss.cn
http://c0ZbhxJK.kghss.cn
http://AKBbUJNC.kghss.cn
http://la8QGYHm.kghss.cn
http://VVFcyuPh.kghss.cn
http://08tncIaO.kghss.cn
http://imebcxqE.kghss.cn
http://bmv2YV07.kghss.cn
http://Pok473c4.kghss.cn
http://CavMaZtC.kghss.cn
http://VlvAJl9q.kghss.cn
http://hpAq1dPS.kghss.cn
http://ekSNfK1h.kghss.cn
http://www.dtcms.com/a/367519.html

相关文章:

  • 深度学习篇---MNIST:手写数字数据集
  • 【算法速成课2 | 题单】背包问题
  • RAG学习
  • Netty从0到1系列之Buffer【上】
  • Flutter之riverpod状态管理Widget UI详解
  • 投标委托测试如何选择第三方检测机构?
  • 记录SSL部署,链路不完整问题
  • Unity Standard Shader 解析(五)之ShadowCaster
  • go 初始化组件最佳实践
  • 2025数学建模国赛高教社杯A题思路代码文章助攻
  • deveco 出现hvigor版本与系统版本不匹配
  • (自用)Linux 常用命令自查文档
  • QT6 配置 Copilot插件
  • 以StarRocks为例讲解MPP架构和列式存储
  • Kafka 学习教程:从基础概念到实践操作
  • 香港云主机常见使用问题汇总
  • 【图像处理基石】图像在频域处理和增强时,如何避免频谱混叠?
  • 【C++】17. AVL树实现
  • Java基础 9.4
  • 市政管网,各种规格的管件汇总大全
  • 【数据模型】思维导图的数据结构模型
  • 力扣字符串刷题-六道题记录-1
  • 【研究前沿】【书读多了,自然就聪明】人工智能中出现的智能涌现的原理是什么?为什么大模型能产生智能?能够泛化?深入了解背后的机制
  • ConvertAPI:PDF转Word的便捷之选
  • 正运动控制卡学习-点动
  • CodeBuddy+Lucene 探索与实践日志:记录我如何从零构建桌面搜索引擎
  • 虚拟化安全:从逃逸漏洞到实战分析
  • 实战演练(二):结合路由与状态管理,构建一个小型博客前台
  • Webus 与中国国际航空合作实现 XRP 支付
  • 专项智能练习(计算机动画基础)