博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx缓存引发的问题
阅读量:6037 次
发布时间:2019-06-20

本文共 952 字,大约阅读时间需要 3 分钟。

请求为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 stop

#删除缓存

cd /data/proxy_cache/

rm -rf *

#重新启动nginx

/usr/local/nginx/sbin/nginx

转载于:https://www.cnblogs.com/reblue520/p/6239660.html

你可能感兴趣的文章
oracle中int与number的区别
查看>>
rsync + inotify 数据实时同步
查看>>
装修除甲醛,这些方法真有那么神奇吗?
查看>>
程序改变了命运,程序生活一天比一天好,对未来也充满了希望
查看>>
SQL Server 2008数据备份与还原(操作篇)
查看>>
cacti监控squid
查看>>
纯CSS无hacks的跨游览器多列布局(转)
查看>>
软件项目开发环境构建之一:整体流程
查看>>
Cacti中rrd文件记录导出
查看>>
RHEL 6 简易搭建samba服务 RHCE
查看>>
yum常用命令
查看>>
一图胜千言 -- SQL Server 基准测试
查看>>
微小说精选
查看>>
我的友情链接
查看>>
Apache安装教程
查看>>
主板典型故障解决方法
查看>>
Hadoop集群搭建步骤
查看>>
更改ubuntu的系统语言
查看>>
jvm参数详解,内存泄露解决
查看>>
升级Windows Management Framework对事件转发的影响
查看>>