优化内核参数可提升网络传输效率与并发处理能力,需修改/etc/sysctl.conf文件并执行sysctl -p生效:
net.core.rmem_max = 16777216、net.core.wmem_max = 16777216(提升TCP收发缓冲区容量,减少数据包丢失);net.ipv4.tcp_tw_reuse = 1(允许复用TIME-WAIT状态的连接,降低连接建立开销)、net.ipv4.tcp_fin_timeout = 30(缩短TIME-WAIT状态超时时间,默认60秒);net.ipv4.tcp_timestamps = 1(提升RTT估算精度)、net.ipv4.tcp_sack = 1(选择性确认丢失数据段,提高重传效率);net.ipv4.tcp_syncookies = 1(当SYN队列满时,通过加密算法生成SYN Cookie应答,避免连接耗尽)。Nginx作为Web服务器,其配置直接影响网络请求处理能力:
worker_processes auto;(根据CPU核心数自动设置,通常等于CPU物理核心数)、worker_connections 1024;(每个worker进程的最大并发连接数,建议设置为1024及以上,需配合use epoll;提升事件处理效率);gzip on;、gzip_comp_level 6;(压缩级别6为平衡值,兼顾压缩率与CPU消耗)、gzip_types text/plain text/css application/json application/javascript;(指定压缩的文件类型,减少传输数据量);location ~* \.(jpg|jpeg|png|gif|css|js)$ { expires 30d; add_header Cache-Control "public, no-transform"; }(为静态资源设置30天缓存,降低服务器负载);listen 443 ssl http2;(HTTP/2支持多路复用、头部压缩,提升页面加载速度)。MySQL的网络配置需平衡并发连接与资源消耗:
max_connections = 200(根据服务器内存与业务需求设置,避免过多连接导致内存溢出);wait_timeout = 600(非交互式连接超时时间,默认8小时,建议缩短至10分钟以内)、interactive_timeout = 600(交互式连接超时时间);mysql_connect()改为mysql_pconnect()(PHP端)或使用ProxySQL(中间件),减少频繁建立/关闭连接的开销;net_buffer_length = 16384(初始通信缓冲区大小)、max_allowed_packet = 64M(允许的最大数据包大小,避免大数据传输失败)。PHP-FPM负责处理PHP请求,其配置需提升脚本执行效率与网络响应速度:
opcache.enable=1、opcache.memory_consumption=128(缓存大小,根据内存调整)、opcache.revalidate_freq=60(缓存验证频率,单位秒),缓存编译后的PHP字节码,减少重复解析开销;pm = dynamic(动态进程模式)、pm.max_children = 50(最大子进程数,根据服务器内存计算,如每进程消耗10MB则50进程需500MB)、pm.start_servers = 10(启动时的子进程数)、pm.min_spare_servers = 5(最小空闲进程数)、pm.max_spare_servers = 20(最大空闲进程数),避免进程频繁创建/销毁;max_execution_time = 30(默认30秒,根据业务需求调整,如上传大文件时可设置为300秒)。将静态资源(图片、CSS、JS、视频)部署到CDN(内容分发网络),利用CDN的边缘节点缓存资源,减少服务器负载与网络延迟:
确保防火墙允许HTTP(80端口)、HTTPS(443端口)流量,避免网络阻断:
firewall-cmd --permanent --zone=public --add-service=http、firewall-cmd --permanent --zone=public --add-service=https;firewall-cmd --reload(使配置生效);firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8888" accept',增强安全性。通过监控工具实时跟踪网络性能,定位瓶颈并调整配置:
top(查看CPU/内存使用率)、vmstat 1(查看系统整体状态,如进程、内存、IO)、ss -tulnp(查看网络连接状态,如端口监听、连接数);iftop(查看实时网络流量,按IP排序)、nload(监控网卡流量趋势)、sar -n DEV 1(查看网卡吞吐量、错误包数);Nginx内置状态模块(stub_status on;,查看请求数、连接数)、MySQL慢查询日志(slow_query_log=1,分析慢查询)、Prometheus+Grafana(可视化监控服务器性能指标,如CPU、内存、网络带宽)。