Apache. Документация на русском


Разделы:   1    2    3    4    5    6    7    8    9      10      11    12    13    14    15    16  

Раздел 10. Модули Апача

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177      178      179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

 <         > 
  RU            EN  

Пункт 178. Модуль Apache mod_proxy_html

Этот модуль предоставляет выходной фильтр для перезаписи HTML-ссылок в ситуации с прокси-сервером, чтобы гарантировать, что ссылки работают для пользователей вне прокси-сервера. Он служит той же цели, что и директива Apache ProxyPassReverse для заголовков HTTP, и является важным компонентом обратного прокси.

Например, если у компании есть сервер приложений, appserver.example.com видимый только из внутренней сети компании, и общедоступный веб-сервер www.example.com , они могут захотеть предоставить шлюз для сервера приложений по адресу http://www.example.com/appserver/ . Когда сервер приложений связывается сам с собой, эти ссылки необходимо переписать, чтобы они работали через шлюз. mod_proxy_html служит для перезаписи <a href="http://appserver.example.com/foo/bar.html">foobar</a> , чтобы <a href="http://www.example.com/appserver/foo/bar.html">foobar</a> сделать его доступным извне.

mod_proxy_html изначально разрабатывался в WebЮing, чья обширная документация может быть полезна пользователям.



Директива ProxyHTMLBufSize

Описание:Устанавливает приращение размера буфера для буферизации встроенных скриптов и таблиц стилей.
Синтаксис: ProxyHTMLBufSize bytes
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:База
Модуль:mod_proxy_html
Совместимость:Версия 2.4 и выше; доступен как сторонний для более ранних версий 2.x

Чтобы анализировать не-HTML-контент (таблицы стилей и скрипты), встроенный в HTML-документы, mod_proxy_html должен прочитать весь скрипт или таблицу стилей в буфер. Этот буфер будет расширяться по мере необходимости для хранения самого большого скрипта или таблицы стилей на странице с шагом в байтах , как установлено этой директивой.

Значение по умолчанию — 8192, и оно подходит практически для всех страниц. Однако, если вы знаете, что проксируете страницы, содержащие таблицы стилей и/или скрипты размером более 8 КБ (то есть для одного скрипта или таблицы стилей, а НЕ все вместе), будет более эффективно установить больший размер буфера и избежать необходимости для динамического изменения размера буфера во время запроса.



Директива ProxyHTMLCharsetOut

Описание:Укажите кодировку для вывода mod_proxy_html.
Синтаксис: ProxyHTMLCharsetOut Charset | *
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:База
Модуль:mod_proxy_html
Совместимость:Версия 2.4 и выше; доступен как сторонний для более ранних версий 2.x

Это выбирает кодировку для вывода mod_proxy_html. Обычно его не следует использовать, так как любое изменение значения по умолчанию UTF-8 (Unicode, используемого внутри libxml2) приведет к дополнительным затратам на обработку. Специальный токен ProxyHTMLCharsetOut * будет генерировать вывод, используя ту же кодировку, что и ввод.

Обратите внимание, что это зависит от mod_xml2enc загрузки.



Директива ProxyHTMLDocType

Описание:Задает объявление типа документа HTML или XHTML.
Синтаксис: ProxyHTMLDocType HTML|XHTML [Legacy]
OR
ProxyHTMLDocType fpi [SGML|XML]
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:База
Модуль:mod_proxy_html
Совместимость:Версия 2.4 и выше; доступен как сторонний для более ранних версий 2.x

В первой форме документы будут объявлены как HTML 4.01 или XHTML 1.0 в зависимости от выбранной опции. Этот параметр также определяет, используется ли для вывода синтаксис HTML или XHTML. Обратите внимание, что формат документов, поступающих с внутреннего сервера, не имеет значения: синтаксический анализатор обработает его автоматически. Если для необязательного второго аргумента установлено значение «Устаревшие», документы будут объявлены «Переходными», что может быть необходимо, если вы проксируете контент, выпущенный до 1998 года, или работаете с дефектными инструментами разработки/публикации.

Во второй форме он вставит ваш собственный FPI. Необязательный второй аргумент определяет, будет ли использоваться синтаксис SGML/HTML или XML/XHTML.

Значение по умолчанию изменено на пропуск любого FPI на том основании, что ни один FPI не лучше поддельного. Если ваш сервер генерирует достойный HTML или XHTML, установите его соответствующим образом.

Если используется первая форма, mod_proxy_html также очистит HTML до указанного стандарта. Он не может исправить каждую ошибку, но удалит фиктивные элементы и атрибуты. Он также может регистрировать другие ошибки при LogLevel отладке.



Директива ProxyHTMLEnable

Описание:Включает или выключает фильтр proxy_html.
Синтаксис: ProxyHTMLEnable On|Off
По умолчанию: ProxyHTMLEnable Off
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:База
Модуль:mod_proxy_html
Совместимость:Версия 2.4 и выше; доступен как сторонний модуль для более ранних версий 2.x.

Простой переключатель для включения или отключения фильтра proxy_html. Если mod_xml2enc он загружен, он также автоматически настроит поддержку интернационализации.

Обратите внимание, что фильтр proxy_html будет действовать только на HTML-данные (Content-Type text/html или application/xhtml+xml) и когда данные передаются через прокси. Вы можете переопределить это (на свой страх и риск), установив переменную среды PROXY_HTML_FORCE .



Директива ProxyHTMLEvents

Описание:Укажите атрибуты, которые следует рассматривать как события сценария.
Синтаксис: ProxyHTMLEvents attribute [attribute ...]
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:База
Модуль:mod_proxy_html
Совместимость:Версия 2.4 и выше; доступен как сторонний для более ранних версий 2.x

Указывает один или несколько атрибутов, которые следует рассматривать как события сценария, и применять ProxyHTMLURLMap s там, где это разрешено. Вы можете указать любое количество атрибутов в одной или нескольких ProxyHTMLEvents директивах.

Обычно вы устанавливаете это глобально. Если вы устанавливаете ProxyHTMLEvents более чем в одной области, чтобы одна переопределяла другую, вам нужно будет указать полный набор в каждой из этих областей.

Конфигурация по умолчанию предоставляется в proxy-html.conf и определяет события в стандартных HTML 4 и XHTML 1.

ProxyHTMLExtended директива

Описание:Определяет, следует ли исправлять ссылки во встроенных сценариях, таблицах стилей и событиях сценариев.
Синтаксис: ProxyHTMLExtended On|Off
По умолчанию: ProxyHTMLExtended Off
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:База
Модуль:mod_proxy_html
Совместимость:Версия 2.4 и выше; доступен как сторонний для более ранних версий 2.x

При значении Off , ссылки HTML переписываются в соответствии с ProxyHTMLURLMap директивами, но ссылки, отображаемые в Javascript и CSS, игнорируются.

Если установлено значение On , все события сценариев (как определено параметром ProxyHTMLEvents ) и встроенные сценарии или таблицы стилей также обрабатываются по ProxyHTMLURLMap правилам в соответствии с флагами, установленными для каждого правила. Поскольку для этого требуется больше синтаксического анализа, производительность будет лучше, если вы включите его только в случае крайней необходимости.

Вам также нужно будет позаботиться о сопоставлении шаблонов, поскольку синтаксический анализатор не знает, что такое URL-адрес во встроенном скрипте или таблице стилей. В частности, расширенное сопоставление / может привести к ложным совпадениям.



Директива ProxyHTMLFixups

Описание:Исправления простых ошибок HTML.
Синтаксис: ProxyHTMLFixups [lowercase] [dospath] [reset]
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:База
Модуль:mod_proxy_html
Совместимость:Версия 2.4 и выше; доступен как сторонний для более ранних версий 2.x

Эта директива принимает от одного до трех аргументов следующим образом:

  • lowercase URL-адреса переписываются в нижний регистр
  • dospath Обратная косая черта в URL-адресах заменяется на прямую косую черту.
  • reset Отмените все параметры, установленные на более высоком уровне в конфигурации.

Будьте осторожны при их использовании. Исправления исправят некоторые авторские ошибки, но также могут привести к ошибочному исправлению ссылок, которые изначально были правильными. Используйте их только в том случае, если вы знаете, что у вас сломан внутренний сервер.



Директива ProxyHTMLInterp

Описание:Включает интерполяцию правил для каждого запроса ProxyHTMLURLMap .
Синтаксис: ProxyHTMLInterp On|Off
По умолчанию: ProxyHTMLInterp Off
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:База
Модуль:mod_proxy_html
Совместимость:Версия 2.4 и выше; доступен как сторонний для более ранних версий 2.x

Это позволяет выполнять интерполяцию для каждого запроса в ProxyHTMLURLMap шаблонах to и from.

Если интерполяция не включена, все правила предварительно компилируются при запуске. При интерполяции их приходится перекомпилировать для каждого запроса, что влечет за собой дополнительные накладные расходы на обработку. Поэтому его следует включать только в случае необходимости.



Директива ProxyHTMLLinks

Описание:Укажите элементы HTML с атрибутами URL, которые необходимо перезаписать.
Синтаксис: ProxyHTMLLinks element attribute [attribute2 ...]
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:База
Модуль:mod_proxy_html
Совместимость:Версия 2.4 и выше; доступен как сторонний для более ранних версий 2.x

Определяет элементы с атрибутами URL, которые должны быть переписаны с использованием стандартных ProxyHTMLURLMap s. Вам понадобится одна директива ProxyHTMLLinks для каждого элемента, но она может иметь любое количество атрибутов.

Обычно вы устанавливаете это глобально. Если вы устанавливаете ProxyHTMLLinks более чем в одной области, чтобы одна переопределяла другую, вам нужно будет указать полный набор в каждой из этих областей.

Конфигурация по умолчанию предоставляется в файле proxy-html.conf и определяет HTML-ссылки для стандартных HTML 4 и XHTML 1.

Примеры из proxy-html.conf

 ProxyHTMLLinks a href
href области ProxyHTMLLinks
Ссылка на ProxyHTMLLinks href
ProxyHTMLLinks img src longdesc карта использования
Карта использования данных кодовой базы класса ProxyHTMLLinks объекта
ProxyHTMLLinks q cite
Цитата блока ProxyHTMLLinks
ProxyHTMLLinks в цитировании
ProxyHTMLLinks ссылки
Действие формы ProxyHTMLLinks
ProxyHTMLLinks input src usemap
Главный профиль ProxyHTMLLinks
База ProxyHTMLLinks href
Скрипт ProxyHTMLLinks src для 


Директива ProxyHTMLMeta

Описание:Включает или отключает дополнительный предварительный анализ метаданных в <head> разделах HTML.
Синтаксис: ProxyHTMLMeta On|Off
По умолчанию: ProxyHTMLMeta Off
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:База
Модуль:mod_proxy_html
Совместимость:Версия 2.4 и выше; доступен как сторонний модуль для более ранних версий 2.x.

Это включает или выключает предварительный анализ метаданных в <head> разделах HTML.

Если это не требуется, отключение ProxyHTMLMeta даст небольшой прирост производительности за счет пропуска этого шага синтаксического анализа. Однако иногда необходимо, чтобы интернационализация работала правильно.

ProxyHTMLMeta имеет два эффекта. Во-первых и самое главное, он позволяет обнаруживать кодировки символов, объявленные в форме

 <meta http-equiv="Content-Type" content="text/html;charset= foo "> 

или, в случае документа XHTML, объявление XML. Это НЕ требуется, если кодировка объявлена в реальном заголовке HTTP (что всегда предпочтительнее) с внутреннего сервера, а также если документ имеет формат utf-8 (юникод) или подмножество, такое как ASCII. Вы также можете обойтись без него, если в документах используется значение по умолчанию, объявленное с помощью xml2EncDefault , но это может привести к распространению неправильного объявления. A ProxyHTMLCharsetOut может устранить этот риск, но, вероятно, потребует больших затрат на обработку, чем включение ProxyHTMLMeta.

Другим эффектом включения ProxyHTMLMeta является анализ всех <meta http-equiv=...> объявлений и преобразование их в настоящие заголовки HTTP в соответствии с исходной целью этой формы HTML-элемента <meta>.

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

Поскольку ProxyHTMLMeta продвигает все http-equiv элементы в заголовки HTTP, важно включать его только в тех случаях, когда вы доверяете HTML-содержимому так же, как доверяете вышестоящему серверу. Если HTML контролируется злоумышленниками, они могут внедрить произвольные, возможно вредоносные, HTTP-заголовки в ответы вашего сервера.

Директива ProxyHTMLStripComments

Описание:Определяет, удалять ли HTML-комментарии.
Синтаксис: ProxyHTMLStripComments On|Off
По умолчанию: ProxyHTMLStripComments Off
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:База
Модуль:mod_proxy_html
Совместимость:Версия 2.4 и выше; доступен как сторонний для более ранних версий 2.x

Эта директива заставит mod_proxy_html удалить HTML-комментарии. Обратите внимание, что это также удалит любые скрипты или стили, встроенные в комментарии (фальшивость, введенная в 1995/6 с Netscape 2 для пользы тогдашних старых браузеров, но все еще используемая сегодня). Это также может мешать обработчикам комментариев, таким как SSI или ESI: обязательно запустите любой из них перед mod_proxy_html в цепочке фильтров, если удаляете комментарии!



Директива ProxyHTMLURLMap

Описание:Определяет правило для перезаписи ссылок HTML
Синтаксис: ProxyHTMLURLMap from-pattern to-pattern [flags] [cond]
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:База
Модуль:mod_proxy_html
Совместимость:Версия 2.4 и выше; доступен как сторонний модуль для более ранних версий 2.x.

Это ключевая директива для перезаписи ссылок HTML. При синтаксическом анализе документа всякий раз, когда цель ссылки совпадает с from-pattern , совпадающая часть будет перезаписана в to-pattern с учетом любых предоставленных флагов и директивы ProxyHTMLExtended . Только элементы, указанные с помощью ProxyHTMLLinks директивы, будут считаться HTML-ссылками.

Необязательный третий аргумент может определять любой из следующих флагов . Флаги чувствительны к регистру.

час

Игнорировать HTML-ссылки (проходить без изменений)

е

Игнорировать события сценариев (проходить без изменений)

с

Пропускайте встроенные скрипты и разделы стилей нетронутыми.

л

Последний матч. Если это правило соответствует, больше никаких правил не применяется (обратите внимание, что это происходит автоматически для ссылок HTML).

л

В отличие от L. Переопределяет поведение по умолчанию с однократным изменением для HTML-ссылок.

р

Используйте сопоставление и замену регулярных выражений. from-pattern является регулярным выражением и to-pattern строкой замены, которая может быть основана на регулярном выражении. Поддерживается память регулярных выражений: вы можете использовать квадратные скобки () from-pattern в to-pattern .

Если R не установлен, будет использоваться строковый литерал поиска и замены. Логика начинается со ссылок HTML, но содержится в событиях сценариев и встроенных разделах сценариев и стилей.

Икс

Используйте расширенные регулярные выражения POSIX. Применяется только с Р.

я

Сопоставление без учета регистра. Применяется только с Р.

н

Отключите память регулярных выражений (для скорости). Применяется только с Р.

с

Сопоставление регулярных выражений на основе строки. Применяется только с Р.

^

Совпадение только в начале. Это относится только к сопоставлению строк (не к регулярным выражениям) и не имеет отношения к HTML-ссылкам.

$

Совпадение только в конце. Это относится только к сопоставлению строк (не к регулярным выражениям) и не имеет отношения к HTML-ссылкам.

В

Интерполировать переменные среды в to-pattern . Строка формы ${varname|default} будет заменена значением переменной окружения varname . Если он не установлен, он заменяется на default . Не |default является обязательным.

ПРИМЕЧАНИЕ: интерполяция будет включена, только если ProxyHTMLInterp включено .

в

Интерполировать переменные среды в from-pattern . Поддерживаемые шаблоны указаны выше.

ПРИМЕЧАНИЕ: интерполяция будет включена, только если ProxyHTMLInterp включено .

Необязательный четвертый аргумент cond определяет условие, которое будет оцениваться для каждого запроса, если установлено ProxyHTMLInterp значение On . Если условие оценивается как FALSE, карта не будет применяться в этом запросе. Если значение TRUE или условие не определено, карта применяется.

Условие оценивается синтаксическим анализатором выражений . Кроме того, также поддерживается более простой синтаксис условий в mod_proxy_html 3.x для HTTPD 2.0 и 2.2.



 <         > 

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177      178      179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

Рейтинг@Mail.ru