TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #4846 12.5K
У меня для вас прикольная находка. Впервые узнал про интересный проект sadservers.com. Это сервис, где вам предлагают виртуалки со сломанными сервисами, которые надо починить. Есть бесплатный и платный тариф. Для поиграть в качестве развлечения и обучения хватит и бесплатного.

Я прошёл одно задание и это неожиданно были интересно. Для регистрации ничего не надо. Просто залогинился со своей учёткой от google. Открыл список заданий и решил выбрать что-то среднее. Я вроде неплохо знаю Nginx, поэтому решил с него начать.

Задание выглядит так:

◽️Scenario: "Cape Town": Borked Nginx
◽️Level: Medium
◽️Description: There's an Nginx web server installed and managed by systemd. Running curl -I 127.0.0.1:80 returns curl: (7) Failed to connect to localhost port 80: Connection refused , fix it so when you curl you get the default Nginx page.
◽️Test: curl -Is 127.0.0.1:80|head -1 returns HTTP/1.1 200 OK
◽️Time to Solve: 15 minutes.
◽️OS: Debian 11
◽️Root (sudo) Access: Yes

Вам дают на время полноценную виртуалку. По крайней мере внешне она выглядит так. Подключение к терминалу происходит прямо в браузере.

Зашёл и сразу замешкался. Я обычно не использую sudo, а тут всё только через него. Постоянно забывал написал. Нет mc, без него навигация более долгая. Плюс, нет mcedit, надо nano использовать. Тоже непривычно, хоть и некритично. Короче, работать в незнакомом окружении неудобно.

Первое, что сделал, проверил, слушает ли Nginx указанный порт:

# sudo ss -tulnp

Оказалось, что нет. Ну, думаю, что-то очень лёгкое задание. Запускаю Nginx:

# sudo systemctl start nginx

Не стартует. Смотрю лог:

# tail -n 10 /var/log/nginx/error.log

Там ошибка в конфиге default.conf. Почему-то первой строкой стоит точка с запятой. Думаю, что-то всё равно очень просто. Убираю первую строку, перезапускаю Nginx, делаю проверку:

# curl -Is 127.0.0.1:80|head -1

На выходе 500-я ошибка. Тут уже интереснее. Думал, на этом задание и закончится. Оказалось, что нет. Опять лезу в лог ошибок. Там знакомое:

socketpair() failed (24: Too many open files)

Смотрю

ulimit -n

Вроде хватает с запасом. Потом вспоминаю, что это параметры текущего пользователя, а Nginx под своим запущен. Смотрю, какие у него лимиты:

# ps ax | grep nginx
850
# cat /proc/850/limits

Там уже не помню вывод, но для open files было значение 10. Решил вопрос самым быстрым способом. У Nginx отдельный параметр прямо в конфиге есть для этой настройки:

worker_rlimit_nofile 65536;

Я его всегда в свои конфигурации добавляю. Перезапустил Nginx и проверка прошла успешно. Можно было лимит изменить в systemd юните, или в системном /etc/security/limits.conf для пользователя nginx.

В целом было интересно. Я даже немного понервничал, так как тикает таймер обратного отсчёта. Нужно уложиться в 15 минут. Не знал, что будет, если не уложиться. Думал, что на бесплатном тарифе могут не разрешить повторить задание, а предложат либо заплатить, либо ждать сутки.

Лично мне задание показалось простым, так как кумекать особо не надо. Смотрим сервис, смотрим, конфиг, смотрим логи. Думать над проблемой не пришлось.

Интересная тема, рекомендую попробовать. Есть похожий сервис от обучающей платформы KodeKloud. Я писал о нём и тоже проходил задания. Но тут мне показалось интереснее. Если кто-то будет проходить другие задания, то расскажите, интересно было или нет.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#обучение
  • 👍 227
  • 👎 4
More from @srv_admin
  1. Oct 7, 2026Столкнулся на днях с типичной ситуацией, когда катастрофически вырос Load Average на серве…
  2. Oct 6, 2026🎉 10 лет Kaspersky Anti Targeted Attack — юбилейный стрим! Друзья, делимся анонсом важног…
  3. Oct 6, 2026Компания Selectel выкатила в public preview своего бесплатного ИИ-агента aish. Далее будет…
  4. Oct 5, 2026На прошлой неделе Mikrotik сделал рассылку с обзором своих новых продуктов. Я последние го…
  5. Oct 5, 2026🚀 Zabbix 8.0 на подходе. Запланируйте обучение команды уже сейчас В ближайшее время ожида…
  6. Oct 5, 2026В комментариях к недавней заметке про рабочее место один читатель в комментариях упомянул…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →