我发现最近一台服务器总是无法让 Squid 命中,就是无法 HIT ,总是MISS.
我的应用环境是 Nginx, Squid , Django Fcgi 。
原来的架构就是 Nginx , Squid , Nginx , Fcgi.
现在增加一层,就搞定了。
就是 Nginx(A), Squid, Nginx(B) , Nginx(C) , Fcgi
原理就是 最外层的 Nginx 是主控A, 然后调用 Squid, Squid 调用 Nginx 的一个特殊端口号B, 然后这个Nginx 再去调用 Nginx 的一个端口号C, 最后这一级Nginx 去调用 Fcgi 进程。
在B 这一层加上 expires 2d; 就是过期时间。
location /news {
proxy_pass http://icgoo_www;
expires 2d;
}
实际部署的时候, A和B可以在相同的服务器上, C 那一层完全可以部署到多台分布服务器上分担负载。 也就是说 C 那一层,可以有多台机器。
参考
*http://nginx.org/en/docs/http/ngx_http_gzip_module.html