服务器环境:阿里云Windows Server 2012 R2,4G内存,单C盘,XAMPP,WordPress 7.1.4,PHP 8.3.36,MariaDB 11.4.13。痛点:正常访问平稳,遇到扫描、CC攻击时CPU直接跑满100%,本次优化控制并发、缩短无效连接回收、收紧OPcache、数据库参数,配合云锁做应用层防护,不改动系统虚拟内存。额外补充Windows系统层优化,关闭无用电源策略、NTFS最后访问时间写入,减少磁盘额外IO开销。
一、Windows系统底层优化(Server通用,减少磁盘IO、后台唤醒)
1. 电源策略优化(服务器固定高性能,避免降频、休眠、待机)
以管理员身份打开命令提示符CMD执行,设置电源方案为高性能,关闭CPU节能、磁盘休眠:
powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c powercfg /change standby-timeout-ac 0 powercfg /change hibernate-timeout-ac 0 powercfg /change disk-timeout-ac 0
说明:AC为通电状态,服务器不允许休眠、待机、磁盘自动停转,防止突发降频、IO卡顿。
2. 关闭NTFS最后访问时间写入(重点,减少频繁文件访问带来的磁盘写操作)
NTFS默认每次读取文件都会更新“最后访问时间戳”,WP、Apache、MariaDB大量读文件时会产生大量无效写IO,单C盘环境收益明显。管理员CMD执行:
fsutil behavior set disablelastaccess 1
查看当前状态(确认是否生效):
fsutil behavior query disablelastaccess
值为1代表已关闭;值0为开启。该设置无需重启,即时生效。
二、PHP 配置 php.ini 优化(OPcache + PHP基础限制)
配置文件路径:C:\xampp\php\php.ini,找到 [opcache] 区块,修改或新增下面参数;前面带分号 ; 的需要删除分号才能生效。
OPcache 核心配置
opcache.memory_consumption=96 opcache.max_accelerated_files=6000 opcache.revalidate_freq=60 opcache.validate_timestamps=1
PHP基础安全&资源限制(同文件内配置)
memory_limit = 256M max_execution_time = 30 max_input_time = 30 upload_max_filesize = 20M post_max_size = 20M display_errors = Off
修改完成后,重启Apache服务,在WordPress后台OPcache面板验证参数是否生效。
三、Apache 配置优化(httpd-mpm.conf + httpd.conf)
原则:不加载不存在模块,不复制网上无效指令,Windows版Apache原生支持,控制线程上限,防止攻击瞬间占满线程池。
1. httpd-mpm.conf mpm_winnt 段(Windows专用)
<IfModule mpm_winnt_module>
ThreadsPerChild 45
ThreadLimit 60
MaxConnectionsPerChild 5000
AcceptFilter http none
</IfModule>
其他系统MPM段落保持原样,无需改动。AcceptFilter http none 解决Windows下半开连接堆积、卡死CPU问题。
2. httpd.conf 基础连接参数
KeepAlive On MaxKeepAliveRequests 80 KeepAliveTimeout 2 Timeout 40
找不到对应参数则跳过,只改存在的配置项。缩短超时时间,快速回收爬虫、扫描器的无效连接。
3. 关闭目录浏览(安全)
找到目录配置,删除Indexes,禁止扫描器遍历目录探测:
Options FollowSymLinks
4. 静态资源压缩+浏览器缓存(mod_deflate、mod_expires)
先确认模块加载(去掉行首#注释):
LoadModule deflate_module modules/mod_deflate.so LoadModule expires_module modules/mod_expires.so
配置缓存规则,放在httpd.conf末尾或者站点虚拟主机配置:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 7 days"
ExpiresByType image/jpeg "access plus 7 days"
ExpiresByType image/gif "access plus 7 days"
ExpiresByType image/png "access plus 7 days"
ExpiresByType text/css "access plus 3 days"
ExpiresByType application/javascript "access plus 3 days"
</IfModule>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json
</IfModule>
作用:图片、样式、JS交由浏览器缓存,减少重复请求,降低攻击时CPU消耗。
四、MariaDB my.ini [mysqld] 数据库优化
原有参数保留,只追加/修改,适配MariaDB11.4,不强制修改ib_logfile(低风险版本)。
# 原有保留 #innodb_log_file_size = 5M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 2 innodb_lock_wait_timeout = 50 # 新增配置 max_connections = 50 slow_query_log = 1 long_query_time = 2 innodb_buffer_pool_size = 768M key_buffer_size = 64M
说明:innodb_flush_log_at_trx_commit=2 适合博客资讯类非交易站点,降低磁盘刷写压力;slow_query_log开启慢查询日志,超过2秒SQL记录,用来排查恶意SQL探测。如果不想持续写日志,slow_query_log = 0。
⚠️ 注意:如果取消注释修改 innodb_log_file_size,需要停止MariaDB,删除data目录 ib_logfile0、ib_logfile1 再启动,否则启动失败,新手建议保持注释。
修改顺序:停止Apache → 停止MariaDB → 保存my.ini → 先启动数据库,再启动Apache。
五、WordPress程序层面优化
- 1. 开启页面缓存插件,优先静态缓存,CC攻击时减少PHP+MySQL动态计算
- 2. 拦截/关闭 xmlrpc.php,扫描器高频攻击接口
- 3. 关闭REST API匿名访问,防止批量遍历wp-json
- 4. SEO插件关闭实时统计、自动抓取功能,减少后台定时任务消耗CPU
六、防护分工(云锁为主,Apache为辅)
- 云锁:CC频率限制、SQL注入、XSS、恶意路径拦截、恶意IP拉黑
- Apache:线程上限、连接超时、静态缓存、gzip压缩
- PHP:脚本最大执行时间,恶意脚本自动终止
- MySQL:连接上限、慢查询日志排查恶意查询
- 系统层:高性能电源策略、关闭NTFS最后访问时间,降低磁盘IO开销
阿里云安全组只放行80、443端口,其余端口按需封闭,RDP远程桌面限制来源IP。
七、监控判断标准
- 正常状态:内存占用50%-70%,CPU低负载
- 攻击触发:云锁优先拦截,Apache线程上限45,不会无限创建进程打满CPU
- 如果攻击依旧CPU跑满:下调 ThreadsPerChild 至35,牺牲并发上限换取稳定性
- OPcache命中率低于80%,可酌情下调 max_accelerated_files
八、避坑清单
- 不要复制网上不存在的Apache模块指令,容易造成Apache启动失败
- 不新增第三方Apache限流模块,Windows环境稳定性差
- OPcache内存不要设置过大,避免并发上来挤压内存、触发C盘虚拟内存交换
- 虚拟内存保持阿里云默认5632M不动,不手动调整
- 关闭NTFS disablelastaccess后,不影响文件修改时间,审计类业务慎用
- 服务器电源方案设置高性能,不要平衡模式,避免CPU降频
九、修改后生效顺序
- 执行系统命令(电源、fsutil,即时生效)
- 保存php.ini、my.ini、Apache配置
- 停止Apache
- 停止MariaDB
- 启动MariaDB
- 启动Apache
- 后台OPcache面板、phpinfo页面校验参数
标签:XAMPP优化,WordPress调优,PHP8.3 OPcache,MariaDB11.4,Windows服务器抗CC,云锁防护,Windows Server磁盘IO优化,NTFS disablelastaccess,服务器电源策略