GridFS Nginx проверяет, существуют ли данные

#nginx #gridfs

#nginx #gridfs

Вопрос:

Я использую (на основе файловой системы) статические 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;
}
  

Возможно ли выполнить проверку IF с помощью GridFS, Amazon S3 или Mysql или чего-либо еще?

Большое спасибо

И ОТВЕТ ТАКОВ

 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;                  
}  
  

Комментарии:

1. Здесь есть еще один хороший ответ github.com/mdirolf/nginx-gridfs/issues/10

Ответ №1:

Вы можете использовать nginx-gridfs модуль для обслуживания файлов GridFS непосредственно из Nginx, а затем перехватить 404 для файлов, которые не найдены, и перенаправить их на другой сервер.