GridFS Nginx 检查数据是否存在

发布于 2024-12-14 02:57:08 字数 1366 浏览 1 评论 0原文

我使用(基于文件系统的)静态 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

む无字情书 2024-12-21 02:57:08

您可以使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文