+ -
当前位置:首页 → 问答吧 → 求一个NGINX的重写+缓存的配置

求一个NGINX的重写+缓存的配置

时间:2011-05-06

来源:互联网

刚开始学NGINX,现在有一个需求就是对于客户请求的伪静态页面进行缓存(使用NGINX自带的缓存模块),如果缓存当中已经存在请求的文件,则直接输出,如果不存在,就请求另外一台服务器上IIS然后再把内容缓存,以便下次请求时就不需要访问另外一台服务器了。
比如用户打开
http://www.q.com/b/2.html
先判断缓存中有没有这个文件,没有的话就访问另外一台内网的服务器,然后输出并缓存。
if ( !-e $request_filename){
  rewrite ^(.*)$ /cms/p.php?id=$1 last;
  proxy_pass http://myproject;
}

但,这种总是缓存了/cms/p.php文件,请问怎么写才能实现,没有缓存就调用另外一台服务器后再缓存,缓存了就直接输出呢?

作者: ssalfc   发布时间: 2011-05-06

文件是否存在或过期是由缓存模块本身负责的,你不需要来判断。

使用proxy_cache

http://wiki.nginx.org/HttpProxyModule#proxy_cache

作者: icy_csdn   发布时间: 2011-05-10