怎样优化centos lnmp的网络设置
小樊
36
2025-12-29 11:12:36
CentOS LNMP 网络设置优化清单
一 基础网络与系统调优
- 静态 IP 与 DNS:编辑网卡配置(如 /etc/sysconfig/network-scripts/ifcfg-ens33),设置 BOOTPROTO=static、IPADDR、PREFIX、GATEWAY、DNS1/2;或使用 NetworkManager/nmcli 统一管理网络。
- 文件描述符限制:在 /etc/security/limits.conf 提升软硬限制(如 nofile 65535),并确认服务进程(Nginx、PHP-FPM)继承该限制。
- 内核网络参数:在 /etc/sysctl.conf 调整 somaxconn、netdev_max_backlog、tcp_max_syn_backlog、rmem/wmem 默认与最大、tcp_tw_reuse、tcp_fin_timeout、tcp_keepalive_time、ip_local_port_range、tcp_syncookies 等,执行 sysctl -p 生效。
- 传输与拥塞:可按需设置 tcp_rmem/tcp_wmem、tcp_mtu_probing=1,并启用 HTTP/2 或 HTTP/3(QUIC) 以提升并发与首包体验。
- 监控与排障:使用 nload、iftop、nethogs、bmon 观察带宽、连接与进程流量分布,配合日志定位瓶颈。
二 Nginx 网络层优化
- 进程与连接:设置 worker_processes auto(或等同 CPU 核心数),worker_connections 结合内存与并发目标调整;使用 epoll 事件模型。
- 传输压缩与复用:启用 gzip 压缩常见文本资源;启用 HTTP/2(或 HTTP/3/QUIC)以获得多路复用与头部压缩。
- 静态资源与长连接:为 图片/CSS/JS 配置强缓存(如 Cache-Control/Expires),开启 keepalive_timeout 与 keepalive_requests 复用连接。
- 连接与缓冲:合理设置 listen backlog 与 proxy_ 缓冲*(如 proxy_buffering on; proxy_buffer_size 4k; proxy_buffers 8 16k;),减少小包往返与队头阻塞。
三 内核网络参数示例与生效方式
- 建议基线(按服务器内存与并发目标微调):
- 连接与队列:
- net.core.somaxconn = 32768
- net.core.netdev_max_backlog = 32768
- net.ipv4.tcp_max_syn_backlog = 65536
- 窗口与缓冲:
- net.core.rmem_default = 8388608;net.core.wmem_default = 8388608
- net.core.rmem_max = 16777216;net.core.wmem_max = 16777216
- net.ipv4.tcp_rmem = 4096 87380 6291456
- net.ipv4.tcp_wmem = 4096 65536 6291456
- 端口与回收:
- net.ipv4.ip_local_port_range = 1024 65535
- net.ipv4.tcp_tw_reuse = 1
- net.ipv4.tcp_fin_timeout = 30
- net.ipv4.tcp_keepalive_time = 1200
- 安全与握手:
- net.ipv4.tcp_syncookies = 1
- net.ipv4.tcp_synack_retries = 2;net.ipv4.tcp_syn_retries = 2
- 生效与回滚:将参数写入 /etc/sysctl.conf 后执行 sysctl -p;变更前备份,变更后逐步观察 ss -s、netstat -s、dmesg 与业务指标。
四 传输层与应用层协同优化
- 前端与传输:启用 Gzip、强缓存与 CDN 分发静态资源,降低源站带宽与时延。
- 数据库与缓存:优化 SQL 与索引、开启 慢查询日志,结合 Redis/Memcached 减少直连数据库次数,缩短请求链路。
- PHP 运行时:启用 OPcache,合理设置 pm.max_children/start_servers 等 PHP-FPM 参数,避免排队与频繁创建进程。
- 扩展与架构:在更高并发下引入 负载均衡(Nginx/HAProxy) 与多实例横向扩展,提升整体吞吐与可用性。
五 验证与回滚建议
- 基线测试:优化前后使用 ab/wrk/siege 或真实流量回放,记录 P95/P99 延迟、RPS、带宽、错误率、连接数。
- 运行时观测:持续查看 nload/iftop/nethogs/bmon 与 Nginx access/error 日志,关注 TIME_WAIT、SYN 重传、连接超时。
- 渐进式调整:一次只变更少量参数,观察至少 1–2 个业务高峰周期;保留可回滚的 配置备份与变更记录,异常立即恢复。