zoukankan      html  css  js  c++  java
  • nginx缓存引发的问题



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





  • 相关阅读:
    括号匹配(有点复杂,因为它讲得详细)
    A+B/A*B求A和B
    构造哈夫曼树
    用栈实现进制转换
    实现二叉树各种基本运算的算法
    十六进制加法
    求二叉树中叶子结点到根结点的路径
    SilverLight4常见问题及解决办法
    Silverlight中自定义控件
    Silverlight发布时的优化工作
  • 原文地址:https://www.cnblogs.com/reblue520/p/6239660.html
Copyright © 2011-2022 走看看