GridFS Nginx 检查数据是否存在
我使用(基于文件系统的)静态 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;
}
I use (File System Based) static html files for caching, for some reasons i don like this. I want store cache files (html, images) in database.
Now it work like that:
if nginx can get cache:
return cache to user
else
proxy_pass request to backend server
It looks like this in my Nginx config file
if (-f $cache_dir_prefix/$query) {
rewrite (.*) $query break;
}
if (!-f $cache_dir_prefix/$query) {
proxy_pass http://lionyzer;
break;
}
It's posible to do IF check with GridFS Or Amazon S3 or Mysql or anything alse?
Thanks alot
AND THE ANSWER IS
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;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
nginx-gridfs
模块直接从Nginx,然后 捕获 404找不到文件并将其代理到其他服务器。You can use the
nginx-gridfs
module to serve GridFS files directly from Nginx, and then catch a 404 for files not found and proxy those to the other server.