☺️ А у меня локально не работает!
Если долго меня читаете, то может слышали, что есть у меня такой пет-проектик для изучения языков — тралебот.
Я его сейчас довольно активно развиваю, ну и разумеется, пользуюсь им сам. 🐶
Проснувшись однажды утром после беспокойного сна, я обнаружил, что у меня в постели тралебот превратился в страшный овощ, а конкретно в тыкву.
Мини-апп не грузится. Первая мысля — че-то не так с сертом. Зашел с браузера — с сертом все норм, но запрос таймаутит. При этом, что удивительно, все боты на сервере на мои запросы отвечают. С другой стороны подключитсья к нему по SSH не получается 🙁 Что еще страннее — панель Hostinger'а не показывала никаких смертельных аномалий ☢️ (опасных мутантов, анархистов и бандитов)
ТО есть сервак явно работает, но достучаться я к нему не могу. WTF?
Перед тем как расскажу, что там случилось, вот вам вопрос на засыпку, как думаете что случилось и как такое дебажить?
———
Подумали? Тогда погнали разгребать, потому что в то утро я честно прошёл все пять стадий принятия.
📓 Первым делом грешу на серт — ну а на что ещё. Проверяю, а он живёхонький, Let's Encrypt, до августа дышать и дышать. Окей.
DNS резолвится. А у меня все равно отвалилось разом всё: и 443, и 80, и SSH, и даже порт кубера.
Лезу через аварийную консоль Hostinger. А там... всё шикарно! Сетевуха поднята, IP на месте, файрвол выключен, в логах ядра тишина, аптайм месяц. Сервер здоров как бык 🐄
Короче, в такой ситуации на увроне интуиции хочется попробовать зайти из другого места. И это правильная интуиция. Но как?
🅰️А вот как! Есть такой сервис — check-host.net.
Скармливаешь ему свой домен, и он одновременно дёргает его из двух-трёх десятков стран разом: Германия, США, Бразилия, Япония, Сингапур, Турция, Казахстан, Израиль... пингует и стучится на 443 с каждой точки и рисует табличку — откуда открылось, а откуда нет.
Жму. И табличка показывает: 24 из 25 точек по миру открывают мой сайт. Германия — 13 миллисекунд, Нидерланды вообще 5. Не открывается ровно одна точка на всём глобусе — Грузия. Собственно та, где и нужен доступ к боту который учит грузинскому языку 😂
И проблема только у моего провайдера Silknet. На самом деле такое уже бывало, причем из разных локаций были проблемы с доступом.
Ок, разобрались, как можно такое детектить. Вопрос как такое чинить?
Вот тут самое вкусное лично для меня. Я ради такого и заводмл пет-проекты – чтобы сталкиваться с такими проблемами и учиться их решать. Так вот оказывается это можно решить с помощью Cloudflare!
1️⃣ Заводишь бесплатный аккаунт на Cloudflare, добавляешь свой домен — он сам сканит твои DNS-записи и подтягивает их. Там лимит 100к запросов в день. Мне за глаза хватит.
2️⃣ Проверяешь, что записи на месте (A на айпишник сервера и CNAME для www), и оставляешь их «проксируемыми» — это оранжевое облачко напротив записи, оно и значит «гнать трафик через нас».
3️⃣ У регистратора (у меня это Hostinger) меняешь NS-серверы на те два, что выдал Cloudflare. Дальше ждёшь, пока смена разъедется по миру — обычно меньше часа.
4️⃣ В разделе SSL/TLS ставишь режим Full — чтобы Cloudflare и с посетителем, и с твоим сервером общался по https. Всё.
🅰️ А что это в итоге даёт:
➕ Обход битых маршрутов. Посетитель теперь идёт не в мой дата-центр напрямую, а на ближайшую точку Cloudflare (их сотни по миру), и уже она тянется до сервера своей магистралью — мимо обрыва у Silknet. Ровно то, что мне было нужно.
➕ Бесплатный сертификат, который Cloudflare сам выпускает и сам продлевает — про ручной Let's Encrypt можно забыть.
➕ Спрятанный реальный IP сервера: снаружи виден только Cloudflare, прямой долбёж по айпишнику уже не прилетит.
➕ Бонусом — кэш статики и базовая защита от мусорного трафика, хотя мне сейчас был дорог именно обход.
Короче, абсолют синема! Теперь у меня тралебот ебать какой взрослый!
#petproject #devtools #devlife
Post #452
646

- 🔥 5
- ❤ 2