Перейти к содержанию

Сервер сайта: различия между версиями

Материал из Вики IT-отдела
Страница о сервере сайта (VPS)
 
Лишняя пустая строка
 
(не показаны 2 промежуточные версии этого же участника)
Строка 48: Строка 48:
|}
|}
Контейнеры слушают только <code>127.0.0.1</code>: снаружи до них не достучаться, к ним ходит только nginx.
Контейнеры слушают только <code>127.0.0.1</code>: снаружи до них не достучаться, к ним ходит только nginx.
{{TODO|Снести предыдущую версию сайта: пользователь <code>user_knt</code> и папка <code>/srv/old-knt</code>}}


== Сертификаты ==
== Сертификаты ==
Строка 59: Строка 57:


== Как добавить новый сайт ==
== Как добавить новый сайт ==
# В [https://dash.cloudflare.com Cloudflare] (общий аккаунт отдела «INBICST») добавить DNS-запись, указывающую на <code>91.218.246.80</code>.
# Добавить в Cloudflare DNS-запись, указывающую на <code>91.218.246.80</code> (как — см. [[Домены и DNS#Добавить поддомен]]).
# Поднять сервис так, чтобы он слушал только <code>127.0.0.1:&lt;свободный порт&gt;</code>.
# Поднять сервис так, чтобы он слушал только <code>127.0.0.1:&lt;свободный порт&gt;</code>.
# Создать конфиг в <code>/etc/nginx/sites-available/</code>, включить его ссылкой в <code>sites-enabled/</code>, проверить и перезагрузить nginx:
# Создать конфиг в <code>/etc/nginx/sites-available/</code>, включить его ссылкой в <code>sites-enabled/</code>, проверить и перезагрузить nginx:
Строка 77: Строка 75:
{{TODO|Мониторинга нет: если сайт или сервер упадёт, автоматически об этом никто не узнает}}
{{TODO|Мониторинга нет: если сайт или сервер упадёт, автоматически об этом никто не узнает}}


[[Категория:За что отвечает отдел]]
[[Категория:Сайт и онлайн-сервисы]]

Текущая версия от 00:27, 28 сентября 2026

Ответственный: Nepike · Последняя проверка: 27 сентября 2026

Сервер сайта — арендованный виртуальный сервер (VPS), на котором работают Студсайт и эта вики.

Коротко

Адрес inbicst.ru, IP 91.218.246.80
Хостинг HostKey, панель управления — invapi.hostkey.ru. Сервер оформлен на личный аккаунт главы отдела (Nepike).
Регион Россия
Оплата 2 856 ₽ в год, платит студсовет. Следующий платёж — 29 октября 2026.
Система Ubuntu 24.04 LTS
Ресурсы 2 ядра, 1,8 ГБ оперативной памяти (+ 2 ГБ swap), диск 58 ГБ

Доступ

Вход по SSH:

ssh <пользователь>@inbicst.ru

Аккаунты на сервере создаёт глава отдела — когда появляется задача, связанная с сервером, и человек готов за неё взяться. Для управления контейнерами пользователя добавляют в группу docker; команды через sudo требуют пароль пользователя.

Что на нём работает

Что Где Зачем
nginx на самом сервере (не в Docker), конфиги в /etc/nginx/sites-available/ Принимает все HTTP(S)-запросы и раздаёт их по сайтам: сам отвечает за HTTPS и проксирует запросы в контейнеры.
Студсайт Docker Compose, проект knt в /srv/knt, порт 127.0.0.1:8001 knt-mipt.ru и старые адреса inbicst.ru, fnbic.ru, new.knt-mipt.ru; files.inbicst.ru.
Вики Docker Compose, проект itwiki в /srv/knt-wiki, порт 127.0.0.1:8080 wiki.inbicst.ru. Конфигурация — в репозитории github.com/Nepike/knt-wiki, там же в README — как обновлять, делать бэкап и восстанавливаться.
certbot на самом сервере Бесплатные HTTPS-сертификаты Let's Encrypt; продлевает их сам по таймеру certbot.timer.
ufw на самом сервере Фаервол: снаружи открыты только SSH (22), HTTP (80) и HTTPS (443). Всё остальное слушает только внутри сервера.
logrotate на самом сервере Ротация логов, чтобы они не съели диск.

Контейнеры слушают только 127.0.0.1: снаружи до них не достучаться, к ним ходит только nginx.

Сертификаты

Сертификаты выпускает certbot через плагин nginx и продлевает сам. Если нужно посмотреть или проверить:

sudo certbot certificates                 # какие есть и до какого числа действуют
sudo certbot renew --dry-run              # пробное продление, ничего не меняет

Как добавить новый сайт

  1. Добавить в Cloudflare DNS-запись, указывающую на 91.218.246.80 (как — см. Домены и DNS#Добавить поддомен).
  2. Поднять сервис так, чтобы он слушал только 127.0.0.1:<свободный порт>.
  3. Создать конфиг в /etc/nginx/sites-available/, включить его ссылкой в sites-enabled/, проверить и перезагрузить nginx:
    sudo nginx -t && sudo systemctl reload nginx
  4. Выпустить сертификат: sudo certbot --nginx -d новый.домен

Порт наружу в ufw открывать не нужно: сайт всё равно идёт через nginx на 443.

Память

Памяти на сервере мало, и это главное ограничение. Больше всего занимает студсайт (около 800 МБ), вики урезана примерно до 150 МБ, swap используется постоянно. Прежде чем запускать на сервере что-то новое, посмотрите, сколько свободно:

free -h
docker stats --no-stream

Чего пока нет

TODO: Регулярных бэкапов базы и файлов студсайта нет — сайт активно разрабатывается, пока не успели настроить
TODO: Мониторинга нет: если сайт или сервер упадёт, автоматически об этом никто не узнает