我有一个大型网站,其中有很多几乎从不改变的页面,现在我正在使用两个 memcache 服务器(amazon elasticache),但这真的很昂贵。
这就是为什么对于这些几乎从未改变的文件,我想将它们上传到 amazon s3 并关闭 1 个 memcache 服务器。
这是我的会议;
location ~ /longterm/(.*){
proxy_pass http://amazonS3bucket;
proxy_intercept_errors on;
proxy_next_upstream http_404;
error_page 404 503 = @fallback_memcached
}
location @fallback_memcache {
set $memcached_key $uri;
memcached_pass name:11211;
error_page 404 @fallback;
}
location @fallback {
try_files $uri $uri/index.html
}
我不知道为什么,但是配置在最终的回退中不起作用;如果我得到一个 amazon S3 命中它就可以起作用,如果我得到一个 amazon S3 未命中和一个 memcache 命中它就可以起作用,但是如果我得到一个 amazon S3 未命中然后一个 memcache 未命中,当它尝试解决最后的回退时它就会失败。
我也在考虑使用亚马逊 s3 fusehttp://code.google.com/p/s3fs/我认为使用代理传递会更容易实现,但性能也会降低?
答案1
仅引述官方文档:
递归错误页面
默认:
recursive_error_pages off;
启用或禁用使用指令进行多次重定向
error_page
。