
请求为f.chinasoft.com/file
f.chinasoft.com 域名指向slb(3.3.3.3)
业务方式:
ios-->slb(3.3.3.3)-->ecs集群(每一台ecs都有一个nginxweb服务器)-->mysql
从mysql中获取的数据为数据库的IP地址,再次经过该ip(假设为1.1.1.1)去请求对应的数据 ip(1.1.1.1)被黑客ddos已经让阿里云黑洞了43200分钟(阿里云这个配合打的不错,轻松让黑客把服务器停机一个月),解决办法是在1.1.1.1这台ecs前端加一个slb,再把须要的服务端口经过slb(2.2.2.2)映射出去
ecs被黑洞后,在前面加slb是能够和ecs进行通讯的
那么问题来了,当咱们把最终用户须要的1.1.1.1(被黑洞的ecs)替换为slb(2.2.2.2)后,发现经过访问f.chinasoft.com/file这个请求仍是1.1.1.1,直接经过3.3.3.3/file来访问就能够返回正确的替换后的IP(2.2.2.2)即咱们须要的slb的IP地址
分析:
1.数据库确认已经被修改
2.那这个有问题的数据可能被缓存在某个地方
cdn 排除
dns 排除
slb 没有这样的功能
查看后面ecs的nginx时发现每一个ServerName 都配置成了f.chinasoft.com,里面有配置缓存
nginx.conf以下:
proxy_temp_path /data/proxy_cache/temp;
proxy_cache_path /data/proxy_cache levels=1:2 keys_zone=cache_one:10m inactive=1d max_size=30g;
因而在每一台ecs上停用nginx,并删除缓存,从新启动nginx,问题解决
#中止nginx服务前端
/usr/local/nginx/sbin/nginx -s stopmysql
#删除缓存ios
cd /data/proxy_cache/
rm -rf *nginx
#从新启动nginxweb
/usr/local/nginx/sbin/nginx