Обратный прокси (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 ГБ

Регистрация за минуту, доступы сразу после оплаты.

Создать аккаунт