Открытые контейнеры через Ubuntu 18.04 & mdash; вопрос помощи

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

Я пытаюсь объединить все мои многочисленные одиночные экземпляры VPS и помещать их в один VPS с управляемыми контейнерами, которые имеют свой привилегированный корневой доступ (в контейнере).

В каждом VPS I в настоящее время выполняется простой стек для обслуживания WordPress.

Ubuntu 18.04 LTS PHP / 7.2 MySQL Кэдди HTTPS / 2 серверный движок

Мой текущий VPS составляет 5 долларов в месяц и поставляется с:

Ubuntu 18.04 LTS 25 ГБ SSD (мне нужно всего лишь 10 ГБ) PHP / 7.2 Полоса пропускания 01TB (я не трогаю это, мои страницы сайта малы ~ 0,8 мб для плотных страниц и низкий трафик) [ ! d9]

Для меня эти ресурсы велики. Но работает около 10 веб-сайтов - около 55 долларов в месяц (Vultr). Вместо этого я хотел бы попробовать службу (SSD Nodes), предлагающую эти спецификации / цену:

25 ГБ SSD (мне нужно только до 10 ГБ) 80 ГБ SSD MySQL Полоса пропускания 01TB (я не трогаю это, мои страницы сайта маленькие ~ 0,8 мб для плотных страниц и низкий трафик) Двигатель сервера Caddy HTTPS / 2

Цена для этой услуги варьируется, но обычно она составляет менее 15 долларов в месяц, если вы заплатите авансом, что я бы не прочь сделать.

Я бы использовал этот единственный VPS для запуска Ubuntu 18.04, а затем использовал LXD / LXC для создания контейнеров, которые затем могут размещать каждый веб-сайт по отдельности.

Каждый контейнер может быть ограничен любыми ресурсами, которые я хотел бы (в пределах одного предела VPS). Это позволит мне сэкономить деньги, позволить мне место для большего количества веб-сайтов / проектов в будущем и создать более управляемый интерфейс для обслуживания.

Вот пример того, что я хотел бы выполнить.

80GB SSD [container01] ----> WordPress Сайт A [container02] ----> Сайт WordPress B [container03] ----> Сайт WordPress C [ container04] ----> Сайт WordPress D И [моментальный снимок чистой установки стека для простого сброса / повторного развертывания]

Я пробовал эту настройку в локальной тестовую среду, а также тестовую среду (на Vultr), и я не могу найти решение проблемы.

Моя единственная проблема с попыткой этой настройки заключается в том, что я не могу передать свои вновь созданные контейнеры через главный IP-адрес, чтобы иметь доступ к каждому контейнеру публично. Я создал каждый контейнер и изменил мост по умолчанию, чтобы использовать «macvlan», который эффективно назначает им «физические» адреса. Однако эти «физические» адреса полезны только для внутреннего использования, поскольку они основаны на «10» IP-адресах и не могут быть доступны публично.

Здесь я потерялся, и я не смог найти решение в Интернете.

Может ли кто-нибудь здесь посоветовать мне в этом конкретном случае? Или мне нужно отказаться от этой идеи, поскольку она просто не сработает?

Кроме того, обратите внимание. Я не хочу запускать серверы с помощью Docker, Kuburnetes или Nginx для управления несколькими веб-сайтами. Я бы предпочел контейнеризацию, чтобы я мог тестировать новые проекты или сайты по отдельности, когда узнаю больше.

Спасибо,

0
задан 8 May 2018 в 22:21

3 ответа

Вам нужно выделить один контейнер LXD для проксирования тех HTTP (или даже HTTPS) запросов в соответствующие контейнеры с установками WordPress.

Во-первых, создайте контейнер прокси-сервера и попросите своего хоста перенаправить подключения к порту 80 (web) на порт 80 этого прокси-контейнера. Вы можете выполнить переадресацию с помощью iptables или, если вы используете LXD 3.0, с прокси-устройством LXD.

Во-вторых, в этом контейнере iptables установите подходящий прокси-сервер proxy . Примерами являются HAProxy (см. Https://www.digitalocean.com/community/tutorials/how-to-host-multiple-web-sites-with-nginx-and-haproxy-using-lxd-on-ubuntu-16-04 ), proxy или даже caddy (см. https://gist.github.com/turtlemonvh/1e6dc4621202b2c1a8c4).

В-третьих, каждый веб-сайт WordPress нуждается в базе данных. Было бы слишком сложно установить MySQL / Mariadb в каждый контейнер WordPress. Вы можете подумать о создании контейнера HAProxy с базой данных, а затем создать другую учетную запись в базе данных для каждого веб-сайта.

1
ответ дан 17 July 2018 в 14:50

Вам нужно выделить один контейнер LXD для проксирования тех HTTP (или даже HTTPS) запросов в соответствующие контейнеры с установками WordPress.

Во-первых, создайте контейнер прокси-сервера и попросите своего хоста перенаправить подключения к порту 80 (web) на порт 80 этого прокси-контейнера. Вы можете выполнить переадресацию с помощью iptables или, если вы используете LXD 3.0, с прокси-устройством LXD.

Во-вторых, в этом контейнере iptables установите подходящий прокси-сервер proxy . Примерами являются HAProxy (см. Https://www.digitalocean.com/community/tutorials/how-to-host-multiple-web-sites-with-nginx-and-haproxy-using-lxd-on-ubuntu-16-04 ), proxy или даже caddy (см. https://gist.github.com/turtlemonvh/1e6dc4621202b2c1a8c4).

В-третьих, каждый веб-сайт WordPress нуждается в базе данных. Было бы слишком сложно установить MySQL / Mariadb в каждый контейнер WordPress. Вы можете подумать о создании контейнера HAProxy с базой данных, а затем создать другую учетную запись в базе данных для каждого веб-сайта.

1
ответ дан 20 July 2018 в 14:53

Вам нужно выделить один контейнер LXD для проксирования тех HTTP (или даже HTTPS) запросов в соответствующие контейнеры с установками WordPress.

Во-первых, создайте контейнер прокси-сервера и попросите своего хоста перенаправить подключения к порту 80 (web) на порт 80 этого прокси-контейнера. Вы можете выполнить переадресацию с помощью iptables или, если вы используете LXD 3.0, с прокси-устройством LXD.

Во-вторых, в этом контейнере iptables установите подходящий прокси-сервер proxy . Примерами являются HAProxy (см. Https://www.digitalocean.com/community/tutorials/how-to-host-multiple-web-sites-with-nginx-and-haproxy-using-lxd-on-ubuntu-16-04 ), proxy или даже caddy (см. https://gist.github.com/turtlemonvh/1e6dc4621202b2c1a8c4).

В-третьих, каждый веб-сайт WordPress нуждается в базе данных. Было бы слишком сложно установить MySQL / Mariadb в каждый контейнер WordPress. Вы можете подумать о создании контейнера HAProxy с базой данных, а затем создать другую учетную запись в базе данных для каждого веб-сайта.

1
ответ дан 20 July 2018 в 15:18

Другие вопросы по тегам:

Похожие вопросы: