做squid测试时查看squid日志信息如下:
192.168.9.52 - - [13/Dec/2011:10:25:30] "GET HTTP/1.1" 404 575 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2" TCP_NEGATIVE_HIT:NONE
TCP_NEGATIVE_HIT:NONE,显示页面被HIT了,检查后发现在源站下menu.gif在images目录下,访问url错误引起的,但是为什么squid会缓存住404的页面呢,最后才知道原来是negative_ttl这个参数引起的,默认squid会缓存住错误页面5分钟.
negative_ttl参数控制这些错误被cache的时间数量。下列HTTP状态可能导致squid响应缓存:204,400, 403, 404, 500, 501, 502, 503, 504等。
negative_ttl 0 second即可解决此问题.