Модуль 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 подавляли промежуточные (1xx) ответы HTTP, отправленные бэкендом. Это технически нарушение протокола HTTP. На практике, если бэкенд отправляет промежуточный ответ, он может сам расширять протокол способом, о котором нам ничего не известно, или просто сломан. Поэтому это теперь настраивается: установитеproxy-interim-response RFCдля полной соответствия протоколу илиproxy-interim-response Suppressдля подавления промежуточных ответов. - proxy-initial-not-pooled
- Если эта переменная установлена, при повторном использовании подключений не будет использоваться пул, если запрос клиента является начальным запросом на подключении фронта. Это позволяет избежать сообщения об ошибке "proxy: ошибка чтения строки состояния с удаленного сервера", вызванной условием гонки, когда сервер бэкенда закрывает подключение пула после проверки подключения прокси и до того, как данные, отправленные прокси, достигли бэкенда. Следует иметь в виду, что установка этой переменной снижает производительность, особенно с клиентами 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