博主使用的SLB+ECS+RDS+OSS系统构架,其中ECS内PHP环境采用PHP+Nginx模式,近日发现ECS磁盘被大量占用,经检查后,发现云盘下有大量日志文件;在提交工单后,问题定位于SLB频繁进行健康检查,导致产生大量的日志文件。解决方案如下:
假设健康检查页面路径设置为:/test.php。
1、屏蔽对test.php访问日志
在站点配置文件中添加内容:
location ~ /test.php
{
access_log off;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
如下图:
注:
a、对test.php的location必须要放置在对php|php5处理前,否则会因为先被进行全局匹配导致无法生效。
b、如果检查页面是其他格式,比如test.html,可以采用如下方式进行关闭访问日志:
location ~ /test.html
{
access_log off;
}
2、关闭这个站点的日志记录:
location ~ .*\.(php|php5)?$
{
access_log off;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
3、在后端服务器中建立一个站点,用于健康检查