Этот перевод обеспечивается StrongLoop / IBM.
Этот документ может быть устаревшим по отношению к документации на английском языке. Последние обновления содержатся в документации на английском языке.При запуске приложения Express за прокси-сервером, необходимо указать (с помощью app.set()) для переменной приложения trust proxy
одно из значений, приведенных в таблице ниже.
Хотя приложение будет запущено и без указания значения переменной приложения trust proxy
, отсутствие заданного значения trust proxy
приведет к некорректной регистрации IP-адреса прокси в качестве клиентского IP-адреса.
Тип | Значение |
---|---|
Булевский |
Если указано значение Если указано значение |
IP-адреса |
IP-адрес, подсеть или массив IP-адресов и подсетей, считающихся надежными. В приведенном ниже списке перечислены предварительно заданные имена подсетей:
IP-адреса можно задать любым из указанных ниже способов:
Если IP-адреса или подсети указаны, они исключаются из процесса определения адреса, и незащищенный IP-адрес, ближайший к серверу приложений, будет определен как IP-адрес клиента. |
Число |
Считать защищенным |
Функция |
Реализация нестандартного механизма защиты. Используйте этот метод, только если вы уверены в своих знаниях.
|
Установка значения, отличного от false
, для trust proxy
ведет к трем существенным изменениям:
Значение req.hostname является производным от значения, указанного в заголовке X-Forwarded-Host
, который может быть задан клиентом или прокси.
Заголовок X-Forwarded-Proto
может быть задан обратным прокси-сервером и указывает приложению на использование протокола https
, или http
, или даже недопустимого имени. Это значение отражается в req.protocol.
Значения req.ip и req.ips заполняются собой списком адресов, взятых из X-Forwarded-For
.
Параметр trust proxy
реализуется с помощью пакета proxy-addr. Дополнительная информация приведена в документации к нему.