Nginx mogilefs module (v 1.0.4)

rus eng

Клиент к MogileFS для nginx.

Внимание здесь принимают конфетки!

Описание

Модуль раздает конфетки запрашивает пути к файлу у трэкера MogileFS заданный директивой mogilefs_tracker и использует первый путь, возвращенный трэкером, для получения файла. Ключ файла задается директивой mogilefs_pass. Если файл с заданным ключем не найден или домен не найден трэкером, то возвращается статус "404 Not found". Если файл найден, но трэкер не вернул доступных путей, то возвращается статус "503 Service unavailable". В случае успешного ответа выполняется попытка извлечь файл используя путь с наивысшим приоритетом.

Директивы конфигурации


синтаксис: mogilefs_pass [<ключ>] {<блок выборки>}
значение по-умолчанию: нет
строгость: обязательная
контекст: main, server, location, limit_except

Задает ключ, который будет запрошен у MogileFS трэкера. Ключ может содержать любые переменные. Если ключ опущен, то в качестве ключа используется часть URI, оставшаяся после отсечения совпавшей части location-а. Пример:

            location /download/ {
                mogilefs_pass {
                    [...]
                }
            }
        

В этом примере, если у сервера запрошен URI /download/example.jpg, то у трэкера будет запрошен файл с ключом example.jpg.

Блок выборки содержит конфигурацию, которая используется для извлечения файла с узлов, на которых они хранятся. В этом блоке необходимо использовать директиву proxy_pass с переменной $mogilefs_path в качестве аргумента. Пример:

            mogilefs_pass {
                proxy_pass $mogilefs_path;
                proxy_hide_header Content-Type;
                proxy_buffering off;
            }
        

Переменная $mogilefs_path содержит абсолютный URL к файлу на узле хранения. Блок выборки создает скрытый внутренний location с именем /mogilefs_fetch_XXXXXXXX, на который выполняется перенаправление после успешного ответа трэкера.

Переменные $mogilefs_path1 .. $mogilefs_path9 содержат запасные URL файла на узлах хранения.


синтаксис: mogilefs_domain <домен>
значение по-умолчанию: default
строгость: необязательная
контекст: main, server, location

Задает домен MogileFS который будет запрошен у трэкера.


синтаксис: mogilefs_class <класс0> [ <класс1> [ ... ] ]
значение по-умолчанию: нет
строгость: необязательная
контекст: main, server, location

Задает класс ресурса MogileFS который будет запрошен у трэкера. nginx вычисляет значения аргументов этой директивы и использует первое непустое значение в качестве класса.


синтаксис: mogilefs_methods <[[метод 1] метод 2 ... ]>
значение по-умолчанию: GET
строгость: необязательная
контекст: main, server, location

Указывает методы, которые будут разрешены при запросе к MogileFS. При запросе методом GET выполняется получение ресурса из MogileFS, при запросе методом PUT выполняется создание или замена, при запросе методом DELETE выполняется удаление ресурса в MogileFS.


синтаксис: mogilefs_tracker <IP|IP:порт|upstream>
значение по-умолчанию: none
строгость: обязательная
контекст: main, server, location

Задает адрес или имя upstream-а MogileFS трэкера. Может содержать переменные.


синтаксис: mogilefs_noverify <on/off>
значение по-умолчанию: off
строгость: необязательная
контекст: main, server, location

Разрешает отправку параметра noverify MogileFS.


синтаксис: mogilefs_connect_timeout <время>
значение по-умолчанию: 60s
строгость: необязательная
контекст: main, server, location

Задает таймаут на соединение с MogileFS трэкером. Не может быть длинее 75 секунд.


синтаксис: mogilefs_send_timeout <время>
значение по-умолчанию: 60s
строгость: необязательная
контекст: main, server, location

Директива задаёт таймаут на передачу запроса MogileFS трэкеру. Таймаут устанавливается не на всю передачу запроса, а только между двумя операциями записи. Если по истечении этого времени трэкер не примет новых данных, то nginx закрывает соединение.


синтаксис: mogilefs_read_timeout <время>
значение по-умолчанию: 60s
строгость: необязательная
контекст: main, server, location

Директива задаёт таймаут на чтении ответа от MogileFS трэкера. Таймаут устанавливается не на всю передачу ответа, а только между двумя операциями чтения. Если по истечении этого времени трэкер ничего не передаст, то nginx закрывает соединение.


Пример конфигурации

error_log  logs/error.log notice;

working_directory /usr/local/nginx;

http {
    include       mime.types;
    default_type  application/octet-stream;

    server {
        listen       80;

        #
        # This location could be used to retrieve files from MogileFS.
        # It is publicly available.
        #
        location /download/ {
            #
            # Query tracker at 192.168.2.2 for a file with the key
            # equal to remaining part of request URI
            #
            mogilefs_tracker 192.168.2.2;
            mogilefs_domain example_domain;

            mogilefs_pass {
                proxy_pass $mogilefs_path;
                proxy_hide_header Content-Type;
                proxy_buffering off;
            }
        }

        #
        # This location could be used to store or delete files in MogileFS.
        # It may be configured to be accessable only from local network.
        #
        location /upload/ {
            allow 192.168.2.0/24;
            deny all;

            mogilefs_tracker 192.168.2.2;
            mogilefs_domain example_domain;
            mogilefs_methods PUT DELETE;

            mogilefs_pass {
                proxy_pass $mogilefs_path;
                proxy_hide_header Content-Type;
                proxy_buffering off;
            }
        }
    }
}
        

Системные требования

Для сборки модуля требуется nginx 0.7.1 и старше.

Скачать

Последняя версия 1.0.4:
ФайлMD5SHA1
nginx_mogilefs_module-1.0.4.tar.gz2466aa02b225ad2aa1af22e6e50a9d2f4f6b774096a77aa8c550d8fd6a3f5d39a661d8ed
nginx_mogilefs_module-1.0.4.zip4667d8b805aa4ecc94c7353d79a1020a8d86fa4f0fcb60cdd73195f77fbadf45ac51a875
или перейти в
каталог загрузки

Репозиторий

http://github.com/vkholodkov/nginx-mogilefs-module/tree/master

Как использовать

Скачать исходники по одной из ссылок выше. Распаковать архив:

tar xvzf nginx_mogilefs_module-1.0.4.tar.gz

Сконфигурировать nginx с дополнительным модулем:

cd <путь к исходникам nginx>
./configure --add-module=<путь к исходникам модуля>
make
make install

Nginx

Описанный модуль является дополнением к веб-серверу nginx. nginx -- это веб-сервер разработанный Игорем Сысоевым.

Лицензия

Описанный модуль является дополнением к веб-серверу nginx и является самостоятельным продуктом. Лицензия описанного модуля BSD Вы должны были получить копию лицензии вместе с исходными кодами модуля. Используя материалы с этого сайты Вы автоматически соглашаетесь с условиями этой лицензии. Если Вы не согласны с условиями этой лицензии, Вы обязаны немедленно удалить с Вашего компьютера все материалы полученные с этого сайта.

Связаться с автором

Valery Kholodkov valery+nginx@grid.net.ru
Пожалуйста, используйте расширение адреса при составлении письма мне.


Copyright (C) 2009 Valery Kholodkov