一、硬件层面优化
二、操作系统层面优化
vm.swappiness=5
(减少交换分区使用)、vm.dirty_background_ratio=5
(后台脏页刷新阈值)、net.ipv4.tcp_tw_reuse=1
(复用TIME-WAIT连接)。noatime
(减少文件访问时间记录)与nodiratime
(减少目录访问时间记录)。三、Nginx配置优化
worker_processes auto;
(自动匹配CPU核心数),worker_connections 65535;
(单个进程最大并发连接数),提升并发处理能力。proxy_cache
缓存静态/动态内容(如proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;
),减少后端请求;开启gzip on;
压缩(gzip_types text/plain text/css application/json;
),降低传输数据量。expires 30d;
缓存头,避免重复请求。四、MySQL/MariaDB配置优化
innodb_buffer_pool_size
为服务器总内存的50%-80%(如16GB内存设为10GB),提升InnoDB引擎性能;设置max_connections
为预期并发连接数(如500-1000),避免连接过多导致崩溃。slow_query_log
(slow_query_log=1
)并设置long_query_time=2
(超过2秒的查询记录),定期用pt-query-digest
分析慢查询并优化索引;每周执行OPTIMIZE TABLE
整理表碎片,提升查询效率。五、PHP配置优化
zend_extension=opcache.so; opcache.enable=1
),设置opcache.memory_consumption=64
(缓存大小)、opcache.max_accelerated_files=10000
(缓存文件数),加速PHP代码执行;调整PHP-FPM参数(pm.max_children=50
、pm.start_servers=5
、pm.min_spare_servers=5
、pm.max_spare_servers=35
),根据内存与CPU核心数合理分配子进程,避免资源浪费或不足。memory_limit=128M
(单个脚本内存限制)、max_execution_time=30
(脚本最大执行时间),防止脚本占用过多资源。六、监控与日志分析
/var/log/nginx/error.log
)、MySQL(/var/log/mysql/error.log
)、PHP(/var/log/php-fpm/error.log
)的错误日志,分析慢查询、连接超报等问题根源,针对性优化。七、负载均衡与高可用
upstream
模块将流量分发到多个后端服务器(如upstream backend { server 192.168.1.1; server 192.168.1.2; }
),提升系统吞吐量。八、安全措施
firewalld
或iptables
关闭不必要的端口(如FTP、Telnet),仅开放80(HTTP)、443(HTTPS)、3306(MySQL)等必要端口,限制非法访问。nginx
、mysql
、php-fpm
),设置最小权限(如MySQL用户仅授予所需数据库权限),防止越权操作。