Зворотний проксі (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 ГБ

Реєстрація за хвилину, доступи одразу після оплати.

Створити акаунт