GridFS Nginx проверяет, существуют ли данные - PullRequest
1 голос
/ 08 ноября 2011

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

2 голосов
/ 08 ноября 2011

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

...