Модуль Apache mod_proxy_http
| Описание: | Модуль поддержки HTTP для mod_proxy
|
|---|---|
| Статус: | Расширение |
| Идентификатор модуля: | proxy_http_module |
| Исходный файл: | mod_proxy_http.c |
Краткое описание
Для работы этого модуля требуется служба mod_proxy. Он предоставляет функции для проксирования запросов HTTP и HTTPS. mod_proxy_http поддерживает HTTP/0.9, HTTP/1.0 и HTTP/1.1. Он не предоставляет возможностей кэширования. Если вы хотите настроить кэширующий прокси-сервер, можно воспользоваться дополнительной службой модуля mod_cache.
Таким образом, чтобы обрабатывать HTTP-запросы через прокси-сервер, на сервере должны присутствовать mod_proxy и mod_proxy_http.
Предупреждение
Не включайте проксирование, пока не обеспечите безопасность сервера. Открытые прокси-серверы опасны как для вашей сети, так и для Интернета в целом.
Переменные окружения
Помимо директив конфигурации, управляющих поведением mod_proxy, существует ряд переменных окружения, управляющих поставщиком протокола HTTP. Переменные окружения ниже, для которых не указаны конкретные значения, включаются при установке любого значения.
- proxy-sendextracrlf
- Заставляет прокси-сервер отправлять в конце запроса дополнительную последовательность CR-LF. Это обходное решение для ошибки в некоторых браузерах.
- force-proxy-request-1.0
- Заставляет прокси-сервер отправлять запросы серверной части как HTTP/1.0 и отключает функции HTTP/1.1.
- proxy-nokeepalive
- Заставляет прокси-сервер закрывать соединение с серверной частью после каждого запроса.
- proxy-chain-auth
- Если прокси-сервер требует аутентификации, он будет читать и использовать учетные данные для аутентификации на прокси-сервере, отправленные клиентом. При включенной переменной proxy-chain-auth он также передаст эти учетные данные следующему прокси-серверу в цепочке. Это может понадобиться, если в цепочке прокси-серверов используется общая информация для аутентификации. Предупреждение безопасности: не устанавливайте эту переменную, если вы не уверены, что она вам нужна, поскольку она приводит к передаче конфиденциальной информации!
- proxy-sendcl
- В HTTP/1.0 требовалось, чтобы все HTTP-запросы с телом (например, запросы POST) содержали заголовок Content-Length. Эта переменная окружения заставляет прокси-сервер Apache отправлять этот заголовок серверной части независимо от того, что клиент отправил прокси-серверу. Это обеспечивает совместимость при проксировании запросов к серверной части с поддержкой HTTP/1.0 или к серверной части с неизвестными возможностями. Однако для этого прокси-серверу может потребоваться буферизовать весь запрос, что значительно снижает эффективность при обработке больших запросов.
- proxy-sendchunks или proxy-sendchunked
- Действует противоположно переменной proxy-sendcl. Позволяет отправлять тела запросов серверной части с использованием фрагментированного кодирования передачи. Это позволяет эффективно передавать запрос потоково, но требует поддержки HTTP/1.1 серверной частью.
- proxy-interim-response
- Эта переменная принимает значения
RFC(по умолчанию) илиSuppress. В более ранних версиях httpd подавлялись промежуточные ответы HTTP (1xx), отправленные серверной частью. С технической точки зрения это является нарушением протокола HTTP. На практике, если серверная часть отправляет промежуточный ответ, возможно, она сама расширяет протокол способом, о котором нам ничего не известно, или просто работает с ошибками. Теперь это поведение можно настроить: установитеproxy-interim-response RFCдля полного соответствия протоколу илиproxy-interim-response Suppressдля подавления промежуточных ответов. - proxy-initial-not-pooled
- Если эта переменная установлена, повторное использование соединения из пула не выполняется, когда запрос клиента является первым запросом в соединении с внешней стороны. Это позволяет избежать сообщения об ошибке «proxy: error reading status line from remote server», вызванного состоянием гонки: серверная часть закрывает соединение из пула после проверки соединения прокси-сервером, но до того, как отправленные прокси-сервером данные достигают серверной части. Следует учитывать, что установка этой переменной снижает производительность, особенно для клиентов HTTP/1.0.
Примечания к запросам
mod_proxy_http создает следующие примечания к запросам для ведения журнала с использованием формата %{VARNAME}n в LogFormat или ErrorLogFormat:
- proxy-source-port
- Локальный порт, используемый для соединения с серверной частью.
- proxy-status
- Статус HTTP, полученный от серверной части.
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_proxy_http.html