Как разместить собственный сайт с помощью Docker и Nginx Proxy Manager

Как разместить собственный сайт с помощью Docker и Nginx Proxy Manager

Резюме

  • Такой сервис, как Cloudflare DDNS, автоматически обновляет IP-адрес вашего домена на IP-адрес вашего дома.
  • Nginx Proxy Manager маршрутизирует трафик и предоставляет SSL-сертификаты через Let’s Encrypt и развертывается в Docker.
  • Ghost — это удобная в использовании блог-платформа с поддержкой разметки и плагинов, которую легко развернуть с помощью Docker.

Вы хотели запустить свой собственный сайт, но ненавидели идею платить за хостинг? Недавно я оказался в такой ситуации, поэтому вот как я быстро создал сайт с помощью Docker, Nginx Proxy Manager и Ghost.

Что вам нужно для создания личного сайта?

Для запуска личного веб-сайта есть несколько предварительных условий. К тому времени, как вы запустите его, у вас должно быть доменное имя, сервер для размещения вашего веб-сайта (это может быть даже старый ноутбук, NUC или Raspberry Pi), Docker и несколько развернутых контейнеров.

Как разместить собственный сайт с помощью Docker и Nginx Proxy Manager

Сначала сервер, на котором будет размещен ваш сайт. Он не обязательно должен быть сверхмощным, и это может быть даже компьютер, который есть у вас дома. Raspberry Pi, NUC, старый настольный компьютер или даже старый ноутбук отлично подойдут для этой услуги. Вам просто нужно что-то, сделанное в течение последних 15 лет или около того, на котором все еще может работать современная операционная система (в идеале Linux, но Windows или macOS тоже подойдут).

Далее следует доменное имя. Вы можете купить свой домен где угодно, но я бы рекомендовал найти тот, который поддерживает DDNS изначально, например Cloudflare. Хотя вы получаете фиксированный IP при использовании виртуального частного сервера (VPS) или другой хостинговой платформы, при размещении вашего сайта дома есть большая вероятность, что ваш IP изменится со временем. Вот тут-то и появляется DDNS (динамический DNS). По сути, когда ваш домашний IP меняется, DDNS обновляет запись A вашего домена, чтобы она указывала на ваш новый IP.

В дополнение к настройке домена и DDNS вам также понадобится Docker для метода хостинга, который я собираюсь здесь порекомендовать. Docker способен запускать так много, но для вашего сайта нам понадобится контейнер DDNS, обратный прокси-сервер Nginx и, конечно, сам ваш сайт.

Как разместить собственный сайт с помощью Docker и Nginx Proxy Manager

Чтобы настроить контейнер Cloudflare DDNS Docker, вам понадобится ключ API для Cloudflare, который может изменить записи DNS для конкретного домена, который вы будете использовать, самого домена и любых поддоменов, которые вы хотите обновлять. Все это будет установлено флагами среды в Docker, что позволит легко изменять или добавлять новые поддомены и домены в будущем.

Как разместить собственный сайт с помощью Docker и Nginx Proxy Manager

Чтобы быстро приступить к работе, вы можете посетить сайт, например What’s My IP Address, чтобы узнать свой публичный IP. Введите этот IP в запись A домена, который вы хотите использовать для своего веб-сайта. Ваш DDNS будет обновлять его, если домен изменится, но ручной ввод сейчас просто поможет ускорить процесс в будущем.

Nginx Proxy Manager решает ваши проблемы с обратным прокси-сервером

Первым контейнером Docker, который запустится после вашего DDNS, будет Nginx Proxy Manager. С помощью Nginx Proxy Manager вы сможете направлять входящий трафик в контейнер Docker вашего сайта.

Как разместить собственный сайт с помощью Docker и Nginx Proxy Manager

Nginx Proxy Manager — это обратный прокси-сервер. Он принимает входящий трафик на портах :80 и :443 (незащищенные и SSL-соединения) и перенаправляет его куда-то еще в вашей сети. Вам нужно будет настроить сетевой брандмауэр для перенаправления внешних портов 443 и 80 на те порты, на которые эти порты сопоставлены для вашей установки Nginx Proxy Manager.

Как разместить собственный сайт с помощью Docker и Nginx Proxy Manager

После того, как вы запустите и запустите контейнер Nginx Proxy Manager Docker с перенаправленными портами, пора настроить маршрутизацию. Начните с перехода к хостам, затем нажмите «добавить новый хост». Вы увидите всплывающее окно, и именно в нем вы должны ввести информацию для своего веб-сайта. Просто введите домен, IP-адрес сервера и порт, на котором будет работать сайт. Порт может быть любым, и обычно он определяется программным обеспечением, которое вы используете.

Как разместить собственный сайт с помощью Docker и Nginx Proxy Manager

Например, вы могли бы перенаправить blog.domain.com на 192.168.1.6:2368, который будет IP вашего сервера с портом Ghost на конце. Всякий раз, когда кто-то посещает blog.domain.com, он будет перенаправляться на ваш публичный IP, а затем Nginx Proxy Manager будет перенаправлять его в нужный контейнер.

Nginx Proxy Manager не только управляет маршрутизацией, но и заботится о сертификатах SSL через Let’s Encrypt. Эти бесплатные сертификаты SSL могут дать тем, кто просматривает ваш блог, душевное спокойствие, добавляя дополнительный уровень безопасности сеансу просмотра. Весь процесс SSL, от начала до конца, также проходит гладко в Nginx Proxy Manager.

Как только вы сможете настроить один обратный прокси, будет довольно просто настроить столько, сколько захотите. У меня в собственной сети более 30 обратных прокси для таких сервисов, как Calibre Web, audiobookshelf, Tautulli, серверы Minecraft, сервер Satisfactory, сервер Ark Survival: Evolved и многое другое.

Ghost — простая в использовании блог-платформа

Теперь, когда вы почти все настроили, пришло время установить Ghost.

Вы могли бы ожидать, что я буду использовать WordPress, так как на нем работает большая часть интернета. Хотя WordPress великолепен, и я использую его уже более 15 лет, Ghost — это то, на чем я сейчас веду свой личный блог. Он легкий, простой в использовании и, честно говоря, просто проще, чем WordPress.

Ghost ориентирован на то, чтобы быть блогом, который также может иметь компонент рассылки. Посты пишутся в markdown (мой любимый способ писать), и есть несколько плагинов для некоторых крупных сервисов, таких как Instagram, Discord, MailChimp, YouTube, Patreon и других.

Как разместить собственный сайт с помощью Docker и Nginx Proxy Manager

Чтобы запустить Ghost, вам нужно сделать несколько вещей. Начнем с Nginx Proxy Manager. Продолжайте и создайте новый прокси-хост с вашим доменным именем в первом пустом поле, оставьте схему HTTP, затем введите IP вашего сервера Docker, а затем порт 2368.

Обычно я проверяю переключатели для кэшированных ресурсов, блокирования распространенных эксплойтов и поддержки веб-сокетов. Пропустите рядом с вкладкой SSL, пропустив вкладку пользовательских местоположений. Здесь выберите «Запросить новый сертификат SSL» и согласитесь с условиями, затем введите свой адрес электронной почты. Нажмите «Сохранить», и ваш обратный прокси-сервер настроен.

Как разместить собственный сайт с помощью Docker и Nginx Proxy Manager

Теперь вернитесь к вашему хосту Docker. Лично я использую Portainer в качестве веб-графического интерфейса для Docker, но поскольку все это делается через Docker Compose, файлы настройки в любом случае идентичны.

Если вы хотите использовать тот же файл Docker Compose, который я использую для своего блога Ghost, то посмотрите мой домашний репозиторий GitHub. Обязательно смените домен на свой собственный домен, а также измените пароль MySQL на что-то более безопасное.

После развертывания файла Docker Compose ваш блог Ghost должен быть запущен и работать на новом домене!

Ваш сайт запущен! Что теперь?

Если все сделано правильно и на вашем маршрутизаторе правильно настроены параметры переадресации портов, то вы сможете перейти по настроенному вами доменному имени и получить внешний доступ к экземпляру Ghost.

Теперь, когда ваш сайт жив, что дальше? Что ж, вам нужно начать с настройки блога Ghost. Есть много видео на YouTube и других статей, которые пошагово проведут вас через все, что нужно сделать. Я даже еще не до конца разобрался со всеми параметрами настройки.

На этом этапе ваш сайт находится в Интернете, и любой может получить к нему доступ. Возможно, вы захотите разместить целевую страницу, пока работаете над ней, или просто оставить ее в покое, пока она находится в стадии разработки. Начните публиковать записи в блоге, отправлять электронные письма и наслаждайтесь размещением своего личного сайта на оборудовании у себя дома, без платы за хостинг!

Запуск полноценного блога может быть не совсем тем, что вам нужно. Если это про вас, то микроблоггинг может быть именно тем, что вы ищете. Он немного отличается от традиционного блоггинга и его гораздо проще настроить, поскольку обычно это делается в социальных сетях, то есть не нужно настраивать базы данных, DDNS или обратные прокси-серверы, и часто это бесплатно!

Валентин Павлов/ автор статьи
Страсть Влентина к играм началась с Resident Evil, и с тех пор он не переставал играть в хоррор-игры. Пишет экспертные руководства для самых сложных игр и обзоры для самых громких релизов. Является магистром журналистики и имеет степень бакалавра лингвистики. Любимые игры: GTA 5, Silent Hill 2, Call of Duty: Modern Warfare 2, Heavy Rain, Metro 2033 и другие.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий