EN
CodeChick
CodeChick
8 subscribers
goals
4 of 100 paid subscribers
Даже 10 платных подписчиков, обеспечат регулярный выход нового контента. Если же мы наберем 100 - то новые задачи и статьи будут появляться ежедневно.
4.15 of $ 312 money raised
Оплата хостинга на 2024 год!

Опыт борьбы с неожиданной проблемой на CodeChick

Все началось с сообщения в Telegram о том, что сайт "лежит". Проверив, я подтвердил, что сайт действительно не отвечал, и каждый запрос завершался таймаутом. Перезагрузка сервера дала временное решение, но главная задача была в том, чтобы выяснить причину сбоя.
Просмотр логов nginx показал мне массу запросов, которые явно не были сделаны нашим фронтендом или сервером. Вот один из таких запросов, который мне попался:
168.119.23.149 - - [04/Mar/2024:08:27:12 +0000] "PROPFIND /data/ HTTP/1.1" 404 8566 "-" "python-requests/2.30.0" "-"
Это выглядело как часть DoS-атаки или интенсивного сканирования.
Решение проблемы безопасности
Чтобы ограничить возможный вред от такого рода активности, я обновил конфигурацию nginx, ограничив доступ к сайту только для стандартных HTTP-методов. Это существенно сократило количество нежелательных запросов к приложению.
Оптимизация производительности
Но работа на этом не закончилась. Проводя дальнейший мониторинг сервера, я заметил случаи пиковой нагрузки на процессор, связанные с выполнением определенных запросов к базе данных. В частности, запрос списка решенных задач иногда занимал более 20 секунд:
Используя Prefetch для предварительной выборки связанных данных я оптимизировал запрос. Это позволило значительно ускорить его выполнение — с более чем 20 секунд до менее чем 1 секунды.

Subscription levels

База

$ 1,04 per month
+ chat

Донатер

$ 3,2 per month
+ chat

Меценат

$ 9,4 per month
+ chat
Go up