Модуль 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