Обратный прокси (reverse proxy)
Обратный прокси — сервер перед сайтом, который принимает запросы посетителей и передаёт их серверам сайта.
Обновлено · Редакция Prokso
Обычный прокси работает на стороне пользователя и скрывает его адрес от сайта. Обратный стоит на стороне сайта и скрывает от посетителей серверы сайта.
Через обратный прокси сайты распределяют нагрузку, кэшируют страницы, шифруют соединения и фильтруют подозрительные запросы. Так работают CDN и сервисы защиты сайтов.
Когда запрос через прокси останавливает страница защиты — часто это именно обратный прокси сайта решил, что запрос нужно проверить. Примеры таких ответов — на странице ошибка 1020.
Покупать обратный прокси для работы с чужими сайтами не нужно: это инструмент владельца сайта.
Как настраивают обратный прокси
Типичный пример — nginx перед приложением. Блок location / { proxy_pass http://127.0.0.1:8000; } передает все запросы приложению на порту 8000, а посетители видят только nginx. Приложение не видит адресов посетителей напрямую: для него каждый запрос приходит от nginx.
Чтобы передать настоящий адрес дальше, nginx добавляет заголовки, например proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;. Приложение должно доверять X-Forwarded-For только от своего прокси, потому что любой клиент может вписать в этот заголовок что угодно. Похожим образом настраивают и кеширование: nginx может сохранять ответы приложения и отдавать их, не обращаясь к нему.
Признаки, что ответ пришел от обратного прокси
Часто это видно по заголовкам ответа: Server с названием CDN, Via, Age с возрастом сохраненной копии или X-Cache: HIT. HIT означает, что страница пришла из кеша, и сервер сайта даже не получил запроса.
Ошибки тоже различаются, и коды ответа здесь подсказывают, где искать причину. 502 и 504 означают, что обратный прокси не дождался ответа от сервера сайта, то есть проблема на стороне сайта, а не в вашем прокси. 403 или 429 с собственной страницей CDN означает, что пограничный уровень сайта решил ограничить запросы.
Что делать, когда сайт вас ограничивает
Воспринимайте это как сигнал от владельца сайта. Снизьте темп и количество потоков, выполняйте заголовок Retry-After, если он есть, и проверьте, не предлагает ли сайт официальный API или выгрузку данных. Если доступ к данным нужен регулярно, напишите владельцу сайта: согласованный способ стабильнее любой настройки с вашей стороны.
Вопросы и ответы
Зачем сайтам обратный прокси?
Чтобы распределять нагрузку между серверами, кэшировать страницы и отсеивать подозрительные запросы. Все посетители сайта проходят через него.
Чем обратный прокси отличается от обычного?
Обычный работает на стороне пользователя и скрывает его адрес, обратный — на стороне сайта и скрывает серверы.
Резидентские $1.59, мобильные $2.50, серверные $0.65 за 1 ГБ
Регистрация за минуту, доступы сразу после оплаты.