前言

一、网络抓包工具

1.1 工具选型与职责边界

轻量级工具推荐:推荐使用系统自带的 tcpdump 作为轻量级抓包工具,适用于服务器端指定网卡、端口或协议进行抓包分析。

可视化工具对比: Wireshark(迷你版)作为图形化抓包工具,虽然功能强大但体量较大,通常由网络工程师负责,运维人员应聚焦于应用层管理。

1.2 tcpdump 核心命令与参数解析

cpdump -i ens33 port 80

-i: interface(网络接口)
企业登录服务器通常不是直接使用账户密码的

核心命令格式:`tcpdump -i <interface> port <port_number>`,其中 `-i` 用于指定网卡接口(如 ens33),`port` 用于过滤指定端口(如 80)。

协议与端口过滤:支持在端口后指定协议(如 `tcp port 80`),用于精准抓取特定协议的数据包。

高效组合:推荐使用 `tcpdump -i ens33 -nn` 作为固定搭配,其中 `-nn` 表示不解析域名和端口服务名,直接显示 IP 和端口号以提高效率。

详细信息输出:`-v` 用于显示详细信息,`-s0` 用于抓取完整数据包,避免截断。

1.3 实战演示与故障排查案例

三次握手捕获:在 Nginx 服务启动状态下,使用 `tcpdump -i ens33 port 80` 成功捕获了客户端与服务器之间的 TCP 三次握手过程。

HTTP 请求解析:通过抓包数据,可以清晰看到 HTTP 请求头、状态码(如 200 OK)及响应内容(如 Welcome to nginx),可用于分析请求是否成功。

二、Nginx 优化策略

2.1 常规优化配置

安全与基础优化:包括隐藏 Nginx 版本号(防止信息泄露)、修改运行用户和组(提升安全性)。

缓存策略权衡:虽然开启网页缓存可提升访问速度,但在高并发场景下会占用大量内存,需根据实际资源情况谨慎配置。

2.2 连接保持机制

会话保持原理:通过配置 `keepalive_timeout`,允许客户端在断开连接后的一段时间内(如 60 秒)复用 TCP 连接,避免重复的三次握手过程,从而提升用户体验。

性能提升效果:该机制能显著降低后续请求的延迟,例如首次访问耗时 5 秒,后续访问可能仅需 2 秒。

2.2.1 连接超时与保持优化

Keep-alive 机制配置:通过设置 `keepalive_timeout` 参数(如 60s),实现 TCP 连接复用。客户端在 60 秒内重连可直接复用现有通道,避免频繁三次握手,有效降低延迟。

优化目的明确:该配置旨在增强用户体验感,减少连接建立的开销,提升数据传输效率。

2.2.2 日志切割与资源管理

日志轮转策略:针对每日 3 万访问量产生的海量日志,采用按天切割备份的策略。通过 Shell 脚本实现自动打包(tar)并删除三天前的旧日志,便于故障排查与磁盘空间管理。

2.2.3 高并发与压缩配置

进程与连接数调优:通过调整 `worker_processes` 和 `worker_connections` 参数应对高并发场景,平时无需开启过高数值,仅在压力测试或大促期间调整。

网页与图片压缩:开启 `gzip` 压缩以减少静态资源传输大小,节省带宽并提升加载速度。需注意网页文件与图片压缩是两个独立的功能模块。

二、高可用(HA)架构原理与实战

2.1HA(High Availability)

高可用大白话:服务器 / 服务尽量不宕机、不停服,坏一台立马自动顶上去,用户无感知

核心目标:

  • 减少单点故障
  • 故障自动切换、不用人工干预
  • 保证业务 7×24 小时能用

单点故障:只有一台服务器,挂了业务直接瘫痪;HA:至少两台互为备份,一台挂,另一台接管。

2.2.1 三大核心要素

  1. 冗余至少两台节点(主 + 备),一台干活、一台待命。
  2. 心跳检测 Heartbeat主备之间定时发 “心跳包”,互相探活;主节点断心跳 → 判定宕机。
  3. 自动故障切换 Failover检测到主节点挂了 → 备节点自动升级为主,接管服务、IP、业务。

2.2.2 两种角色

  • Master 主节点:对外提供业务、读写干活
  • Slave/Backup 备节点:平时待命,同步数据,主挂了立刻顶上

2.2.3 数据同步原理

主节点数据实时 / 定时同步到备节点,保证切换后数据一致不丢失

2.2.4 虚拟 IP VIP 核心关键

对外不用真实 IP,用一个共享虚拟 IP;平时 VIP 绑在主节点,故障时VIP 漂移到备节点,用户不用改地址、无感知。

补充:

DNS轮询的缺陷:虽然DNS解析支持轮询策略,但由于存在TTL(生存时间)缓存,当主节点宕机时,客户端在缓存期内仍会访问故障IP,导致服务不可用。

VIP漂移机制:引入虚拟IP(VIP)作为统一入口。当主服务器(Master)故障时,VIP会“漂移”到备用服务器(Backup),客户端无感知,仅需刷新页面即可恢复访问。

2.2 Keepalived 核心工作机制

优先级选举:通过`priority`数值定义主备关系,数值高者为主节点。VIP默认绑定在优先级最高的节点上。

健康检查与故障转移:备用节点通过心跳检测(Ping或自定义脚本)监控主节点状态。一旦检测到主节点异常,备用节点会提升自身优先级,触发VIP漂移。

2.3 配置实战与注意事项

配置文件结构:`keepalived.conf`包含全局定义(Global)、健康检查脚本(Script)及VRRP实例(VRRP Instance)三个核心部分。

关键参数配置:需明确指定VRRP组ID(`virtual_router_id`)、本机角色(`state`)、优先级(`priority`)及绑定的网卡接口。

配置粘贴规范:在编辑配置文件时,必须进入插入模式(Insert Mode)后再粘贴模板,否则可能导致配置内容丢失或不完整。

补充:

1.Nginx出现503 502状态码 是服务端问题

1.1 查看日志(错误日志)
1.2 自己验证,判断是个例,还是普遍现象 ,初步定为到问题,服务端的事儿。

1.3 排查:
ssh 登录到服务器 --nginx 错误日志,能否从nginx服务器这里访问到后端
ping 
ssh 连接到后端服务器---》看日志,tcpdump 
查看后端服务器的进程是否存活
后端服务器压力过大了(CPU、内存、I/O)

1.4 解决问题 复盘和优化处理
磁盘:df -hT  lsblk fdisk 
网络:ifconfig ip a ping netstat tcpdump  nload (telnet )

2. Nginx 限流 (目的是降低服务器处理请求的压力)
3个限流场景:
2.1 正常流量场景的限流
对同一个用户ip限制其每分钟的访问频率(比如:1r/m)

2.2 激增流量场景的限流 
允许短时间内处理超过平时流量限制的连接请求,再回归到正常流量限制的处理频次,比如:
平时只允许同一个ip 1min 内发送1个请求,激增流量场景下,短时间内允许1个IP 1min内发送5个请求,然后再回归到1min 只允许发送一个请求的限制场景。

2.3 并发流量场景的限流
限制2个维度的流量:
1、单个IP 每分钟的访问频次 
2、整个服务器接受的总访问连接数量

总结

1、Nginx 是什么 干嘛的 什么场景使用 
web 服务器(前端)
通过匹配用户访问的URL 处理静态任务,把动态任务代理给多个后端处理

URL : http://www.baidu.com/aaa/index.html

nginx 优势:
1、静态任务处理性能较高 5w/s ,优化的好--》最高大约可以同时处理20w 并发任务
2、Nginx C开发的,并且支持正则,系统性能相对利用率更高
3、Nginx 综合性的功能比较多

nginx 优化:

2、Nginx 虚拟主机
本质来说,就是不同的URL访问入口 ,匹配不同的server {} 区域进行处理

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐