Многие сайты и сервисы прячутся за Cloudflare. Это дешёвый щит от тупых ботов и лютых сканеров. Но иногда этот щит мешает тебе же: например, если надо забрать данные через свой прокси или сделать «проброс» API внутрь твоего проекта.
Самый частый облом — 403 Forbidden или редирект на страницу Cloudflare с капчей. Суть в том, что Cloudflare смотрит на User-Agent, заголовки и сертификат SSL. Если ты пытаешься пробиться curl’ом в лоб — получаешь бан или редирект.
Как обойти
Решается всё через proxy_ssl_server_name и proxy_ssl_name в твоём конфиге Nginx. Минимум — это чтобы прокси не палился, что он не браузер.
Пример:
location / {
proxy_pass https://api-твоего-сервиса;
proxy_ssl_server_name on;
proxy_ssl_name $proxy_host;
}
Если надо ещё переписать урлы внутри запроса — юзаешь rewrite:
КопироватьРедактировать
location / {
rewrite /(.*) /$1 break;
proxy_pass https://api-твоего-сервиса;
proxy_ssl_server_name on;
proxy_ssl_name $proxy_host;
}
Зачем это нужно
📌 Сценариев — миллион:
- Парсишь защищённый контент.
- Делаешь свой гейтвей к стороннему API.
- Хочешь скрыть прямой вызов у себя на фронте.
- Обходишь лимиты по IP.
Что может пойти не так
👉 Если Cloudflare видит, что ты заходишь странно — будет требовать JavaScript-чек или капчу. Тут Nginx уже не поможет — нужен полноценный headless-браузер или прокси через Puppeteer.
👉 Если API требует авторизацию по токену — не забудь прокинуть заголовки:
proxy_set_header Authorization "Bearer твой_токен";
👉 Не держи proxy_pass на весь мир без ограничений — потом удивишься, почему трафик улетает в потолок.
0 комментариев