Spec-Zone.ru › Apache HTTP Server

Модуль Apache mod_proxy_scgi

Описание: Модуль шлюза SCGI для mod_proxy
Статус: Расширение
Идентификатор модуля: proxy_scgi_module
Исходный файл: mod_proxy_scgi.c
Совместимость: Доступен начиная с версии 2.2.14

Краткое описание

Этот модуль требует службы mod_proxy. Он обеспечивает поддержку протокола SCGI версии 1.

Таким образом, чтобы получить возможность обрабатывать протокол SCGI, на сервере должны присутствовать mod_proxy и mod_proxy_scgi.

Предупреждение

Не включайте проксирование, пока не обеспечите безопасность сервера. Открытые прокси-серверы представляют опасность как для вашей сети, так и для всего Интернета.

Примеры

Помните: чтобы приведённые ниже примеры работали, необходимо включить mod_proxy и mod_proxy_scgi.

Простой шлюз

ProxyPass "/scgi-bin/" "scgi://localhost:4000/"

Для сбалансированного шлюза необходимы mod_proxy_balancer и как минимум один модуль алгоритма балансировки нагрузки, например mod_lbmethod_byrequests, помимо перечисленных выше модулей прокси. mod_lbmethod_byrequests используется по умолчанию и будет применён в этой конфигурации примера.

Сбалансированный шлюз

ProxyPass "/scgi-bin/" "balancer://somecluster/"
<Proxy "balancer://somecluster">
    BalancerMember "scgi://localhost:4000"
    BalancerMember "scgi://localhost:4001"
</Proxy>

Переменные окружения

Помимо директив конфигурации, управляющих поведением mod_proxy, на поставщик протокола SCGI также может влиять переменная окружения:

proxy-scgi-pathinfo
По умолчанию mod_proxy_scgi не создаёт и не экспортирует переменную окружения PATH_INFO. Это позволяет серверу SCGI на стороне бэкенда правильно определять SCRIPT_NAME и Script-URI и соответствовать разделу 3.3 RFC 3875. Если вместо этого вам нужно, чтобы mod_proxy_scgi генерировал «наиболее вероятное» значение PATH_INFO, задайте эту переменную окружения. Переменную необходимо задать до того, как вступит в силу SetEnv. Вместо этого можно использовать SetEnvIf: SetEnvIf Request_URI . proxy-scgi-pathinfo

Директива ProxySCGIInternalRedirect

Описание: Включение или отключение ответов бэкенда с внутренним перенаправлением
Синтаксис:
ProxySCGIInternalRedirect On|Off|Headername
Значение по умолчанию:
ProxySCGIInternalRedirect On
Контекст: конфигурация сервера, виртуальный хост, каталог
Статус: Расширение
Модуль: mod_proxy_scgi
Совместимость: Возможность использования Headername доступна начиная с версии 2.4.13

Директива ProxySCGIInternalRedirect позволяет бэкенду выполнить внутреннее перенаправление шлюза на другой URL. Эта возможность появилась в mod_cgi, который выполняет внутреннее перенаправление ответа, если его статус равен OK (200), а ответ содержит Location (или заданный альтернативный заголовок), значение которого начинается с косой черты (/). Это значение интерпретируется как новый локальный URL, на который Apache httpd выполняет внутреннее перенаправление.

В этом отношении mod_proxy_scgi действует так же, как mod_cgi, за исключением того, что позволяет отключить эту возможность или указать заголовок вместо Location.

Пример

    ProxySCGIInternalRedirect Off

# Django and some other frameworks will fully qualify "local URLs"
# set by the application, so an alternate header must be used.
<Location /django-app/>
    ProxySCGIInternalRedirect X-Location
</Location>

Директива ProxySCGISendfile

Описание: Включение обработки псевдозаголовка ответа X-Sendfile
Синтаксис:
ProxySCGISendfile On|Off|Headername
Значение по умолчанию:
ProxySCGISendfile Off
Контекст: конфигурация сервера, виртуальный хост, каталог
Статус: Расширение
Модуль: mod_proxy_scgi

Директива ProxySCGISendfile позволяет бэкенду SCGI передавать шлюзу файлы для непосредственной отправки. Это полезно для повышения производительности: httpd может использовать sendfile и другие оптимизации, которые невозможны, если файл передаётся через сокет бэкенда. Кроме того, содержимое файла не передаётся дважды.

Аргумент ProxySCGISendfile определяет поведение шлюза:

Off
Специальная обработка не выполняется.
On
Шлюз ищет в ответе бэкенда заголовок X-Sendfile и интерпретирует его значение как имя файла для отправки. Этот заголовок удаляется из окончательных заголовков ответа. Это эквивалентно ProxySCGISendfile X-Sendfile.
любой другой аргумент
Аналогично On, но вместо имени заголовка, заданного в коде, X-Sendfile, используется аргумент.

Пример

# Use the default header (X-Sendfile)
ProxySCGISendfile On

# Use a different header
ProxySCGISendfile X-Send-Static

© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_proxy_scgi.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API