LINUX.ORG.RU
ФорумAdmin

Архитектура домашнего сервера

 , ,


1

3

Здравствуйте. Задача: поднять домашний сервер с smb, почтой и веб сервисами. Имеется: машина на ubuntu server с проброшенными портами через маршрутизатор к зарегистрированному домену. Дабы не сваливать все службы в одну кучу, думаю поднять под каждую гостевую систему и присвоить соответствующий поддомен. Правильное ли это решение? Правильно ли будет устанавливать на хост одну из служб, или лучше оставить только гипервизор? Как устроены виртуальные сервера больших проектов? Спасибо

Дабы не сваливать все службы в одну кучу, думаю поднять под каждую гостевую систему и присвоить соответствующий поддомен. Правильное ли это решение?

А как ты на каждую гостевую будешь заводить свой поддомен? IP-адрес у тебя один, все поддомены будут указывать на него. А уже внутри веб-сервера будешь разводить запросы.

равильно ли будет устанавливать на хост одну из служб, или лучше оставить только гипервизор?

Я бы на хосте оставил гипервизор и nginx в качестве балансировки запросов в разные виртуалки.

Но в принципе, nginx для балансировки можно запускать и в отдельной виртуалке, так безопаснее.

Как устроены виртуальные сервера больших проектов? Спасибо

Э. Ну. По-разному :-) Тебе-то зачем? )

Aceler ★★★★★
()
Последнее исправление: Aceler (всего исправлений: 1)
Ответ на: комментарий от Aceler

Спасибо за пищу для размышлений

Тебе-то зачем?

Подсмотреть элегантные решения. Везде куча инфы про виртуальные сервера, а как это всё размещается физически непонятно

suetnoj
() автор топика
Ответ на: комментарий от suetnoj

Если поставишь proxmox и будешь использовать lxc то будешь иметь дело с ними практически как с обычными виртуальными машинами но цена будет как у контейнеров.

sin_a ★★★★★
()
Ответ на: комментарий от Aceler

У меня стоит lxc, в каждом контейнере свой IP-адрес. Ядро одно на всех, что позволяет синхронизировать доступ к файловой системе без применения сетевых файловых систем. А если бы были виртуалки, то пришлось бы городить сетевую ФС (9P для qemu/kvm раньше было надо).

Все эти IP адреса внутри локальной сети (и сервисы доступны только в ней). Снаружи роутер с NAT, и если надо какой-то сервер вывести наружу, то в NAT надо настроить port forwarding 80 и 443 порта, например.

Если хочется бо́льшей доступности, то делается (арендуется) внешний веб-сервер, занимающийся раздачей readonly-контента, на нём настраивается NAT, сам он соединяется с домашним компом по wireguard, где уже стоит web-сервер занимающийся обработкой read-write контента. Таким образом при выпадении домашней сети сервис становится доступным только на чтение (и это менее критично, если бы он становился недоступным совсем).

Домашний сервер нужен, потому что он огромен и жруч, а внешний сервер потребляет мало ресурсов (фактически является балансировщиком и кешем) и поэтому арендуется за мало денег.

Shushundr ★★★★
()
Последнее исправление: Shushundr (всего исправлений: 4)

Дабы не сваливать все службы в одну кучу, думаю поднять под каждую гостевую систему и присвоить соответствующий поддомен. Правильное ли это решение? Правильно ли будет устанавливать на хост одну из служб, или лучше оставить только гипервизор?

Одна виртуалка с реверс прокси, на неё проброс 80 и 443 порта, и несколько апстрим виртуалок - веб серверов.

Black_Shadow ★★★★★
()

Правильное ли это решение?

Неправильное. Просто запусти всё от разных юзеров и настрой права доступа к файловой системе чтобы они не могли подглядывать друг за другом.

ubuntu server

Один из самых плохих вариантов. Если хочешь именно линукс, то лучше дебиан или, на худой конец, клон шапки. А вообще лучше FreeBSD.

Как устроены виртуальные сервера больших проектов

Большие виртуальные сервера устроены в виде стоек, доверху набитых железом, и часто не в формате отдельных корпусов на комп, а шасси с вставляемыми в них вычислительными единицами, и всё под единым управлением. Тебе это явно не грозит, не смотри на них.

Большие же проекты не виртуальные: там задача не впихнуть побольше сервисов на одну железку, а посчитать, сколько железок нужно на каждый сервис. Ну, например, балансировщик - 10 физ. серверов, одно приложение - 50 серверов, другое - 30. Это всё тебе тоже не грозит.

firkax ★★★★★
()
Ответ на: комментарий от suetnoj

Везде куча инфы про виртуальные сервера, а как это всё размещается физически непонятно

Везде по-разному, потому что везде разные требования по безопасности, по доступности, по пропускной способности, по бекапам, по деньгам в конце концов.

У тебя нет таких требований, соответственно, тебе проще жить в контейнерах и/или в виртуалках. А можно вообще всё свалить на один сервер и от разных пользователей пускать разные сервисы, как предложили выше — это сэкономит и процессорное время, и твоё время, меньше возни с виртуальными коммутаторами.

Кстати, если ты ставишь Ubuntu, там есть сервисы в snap. Snap сам себе контейнер, очень удобно. У нас так NextCloud установлен, например.

Aceler ★★★★★
()

не придумывай себе проблем и «поднимай» свой сервер.

//держал дома сервак с LDAP, krb5, nfsv4, jabberd2, autofs, samba, CUPS, … на клиентах sssd для логина через krb5/LDAP с GSSAPI

mrjaggers
()

Пробовал всякие конфигурации домашнего сервера и пришёл к выводу, что надо делать как можно проще.

У меня так: ubuntu server, smb, rtorret + webUI к нему, nextcloud, git (для pet проектов и заметок obsidian), wireguard, rdiff-backup. Всё.

Хитрая конфигурация сети, виртуалки, контейнеры и прочее ведут к тому, что через некоторое время сервер стоит отключенным и постоянно лень «окончательно всё настроить»

На виртуальные сервера больших проектов ориентироваться точно не надо.

Aster
()

Самое разумное докер/подмен

Это единственное знакомые мне решение для нищебродов с одним айпишненом и отсутствием проблем

AVL2 ★★★★★
()