Express за прокси
При запуске приложения 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. Дополнительная информация приведена в документации к нему.