Nginx шпаргалка
proxy_set_header Host — еще одна важная команда, которая в запросе к сайту донору выставляет правильное поле HOST. Без нее будет подставляться имя нашего прокси сервера и запрос будет ошибочным.
Пример1: proxy_set_header Host www.6pm.com; Пример2: proxy_set_header Host $host;
# Отправляем реальный адрес посетителя приложению в заголовке X-Real-IP header: proxy_set_header X-Real-IP $remote_addr
# Добавляем адреса сети в список доверенных: set_real_ip_from 66.110.32.128/30 set_real_ip_from 83.234.15.112/30 set_real_ip_from 87.245.197.192/30 set_real_ip_from 185.94.108.0/24
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Заголовок X-Forwarded-For
Заголовок X-Forwarded-For содержит список прокси серверов по которым прошёлся клиент перед этим сервером, а переменная $proxy_add_x_forwarded_for содержит полученный заголовок X-Forwarder-For плюс добавляет свой сервер в этот список (это используется для передачи реального ip-клиента на backend).
try_files $uri $uri/ /index.html;
Специально для того, чтобы красиво записывать такие рерайты придумана специальная директива — try_files. В самом простом варианте ее обычно записывают так:
try_files $uri $uri/ @fallback
что обозначает:
1. Проверить, существует ли запрошенный файл. Если да — отдать его, если нет — идти далее.
2. Проверить, существует ли директория с запрошенным именем. Если да — отдать ее, если нет — идти далее.
3. Передать запрос на обработку в именованный location @fallback.