我使用(基于文件系统)静态html文件进行缓存,出于某些原因我不喜欢这样。我想在数据库中存储缓存文件(html,图像)。
现在它的工作原理如下:
if nginx can get cache:
return cache to user
else
proxy_pass request to backend server
在我的Nginx配置文件中看起来像这样
if (-f $cache_dir_prefix/$query) {
rewrite (.*) $query break;
}
if (!-f $cache_dir_prefix/$query) {
proxy_pass http://lionyzer;
break;
}
使用GridFS或Amazon S3或Mysql或其他任何方式进行IF检查是否可行?
非常感谢
和答案
location /assets/ {
gridfs assets field=filename type=string;
mongo 127.0.0.1:27017;
error_page 404 = @scale;
}
location @scale {
include fastcgi.conf;
fastcgi_pass unix:/tmp/php-fpm;
fastcgi_param SCRIPT_FILENAME scaleme.php;
}
答案 0 :(得分:2)
您可以使用nginx-gridfs
模块直接从Nginx提供GridFS文件,然后catch a 404 for files not found并将其代理到其他服务器。