关于nginx的last-modified及强制打开last-modified的方法

nginx如果打开了SSI模块,会默认关闭header中的last-modified输出,可以通过修改源代码来重新打开:
注释掉src/http/modules/ngx_http_ssi_filter_module.c第362行:

static ngx_int_t
ngx_http_ssi_header_filter(ngx_http_request_t *r)
{


……
if (r == r->main) {
ngx_http_clear_content_length(r);
/*ngx_http_clear_last_modified(r);*/
ngx_http_clear_accept_ranges(r);
}

……
}


如果编译并使用了--with-http_sub_module模块,还需要注释掉src/http/modules/ngx_http_sub_filter_module.c第159行:

static ngx_int_t
ngx_http_sub_header_filter(ngx_http_request_t *r)
{

……
if (r == r->main) {
ngx_http_clear_content_length(r);
/*ngx_http_clear_last_modified(r);*/
}

……

}

注掉源码,重新编译就可以了,如果header里面没有显式输出last-modified,那默认使用的时间是文件的MTIME,要注意。


经过测试,发现上面的方法是可行的,这样在用ssi的同时也可以让浏览器缓存生效了。


发布了27 篇原创文章 · 获赞 3 · 访问量 13万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章