Nginx mogilefs module (v 1.0.2)

rus eng

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

Описание

Модуль запрашивает пути к файлу у трэкера MogileFS заданный директивой mogilefs_tracker и использует первый путь, возвращенный трэкером, для получения файла. Ключ файла задается директивой mogilefs_pass. Если файл с заданным ключем не найден или домен не найден трэкером, то возвращается статус "404 Not found". Если файл найден, но трэкер не вернул доступных путей, то возвращается статус "403 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_domain <домен>
значение по-умолчанию: default
строгость: необязательная
контекст: main, server, location

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


синтаксис: 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;

        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_pass {
                proxy_pass $mogilefs_path;
                proxy_hide_header Content-Type;
                proxy_buffering off;
            }
        }
    }
}
        

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

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

Скачать

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

Репозиторий

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

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

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

tar xvzf nginx_mogilefs_module-1.0.2.tar.gz

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

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

Nginx

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

Лицензия

Лицензия описанного модуля BSD Вы должны были получить копию лицензии вместе с исходными кодами модуля.

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

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


Copyright (C) 2009 Valery Kholodkov