近日在客户的网站上发现了一个奇葩的现象
静态文件1.jpg存在于A网站,但是可以被B网站访问的同时也可以被A网站访问
静态文件test.html存在于A网站,可以被A网站访问,B网站无法访问。
多种调试得到结果
magento后台默认的Varnish vcl里面已经是有区分静态内容及动态内容的代码,静态内容这里给的是pas,跳过VARNISH缓存,但是在实际当varnish健康度下降或是varnish无法有效运转时,会进入一个sick模式,无视了hash的生成规则,无视了Pass的代码,只要是在内存中的数据都可以被同服务器上的所有域名访问,处理这种异常的本来是在VARNISH配置文件中进行的,但是搞了半天只能换一个角度让这个问题跳过
不得不在6081 proxy代理前加以下代码
付费内容限时免费中...
location ~* \.(jpg|jpeg|png|gif|webp|ico|svg|css|js|woff|woff2|ttf|otf|eot)$ {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
expires 30d;
access_log off;
}来实现直接在NGINX层面就让静态文件不经过varnish.




