Поддомен Dokku не может быть найден

#nginx #subdomain #digital-ocean #dokku

#nginx #поддомен #digital-ocean #dokku

Вопрос:

Я развернул приложение в своем экземпляре Digital Ocean Dokku и настроил его с таким доменом, который https://example.com (используя плагин letsencrypt dokku) указывает на мой originalApp . Недавно я попытался развернуть второе приложение на своем экземпляре Dokku, думая, что смогу получить к нему доступ с помощью http://newApp.example.com и в конечном итоге использовать new-example.com для доступа к нему.

Однако я не могу получить доступ к своему новому приложению. dokku domains:report выдает:

 =====> newApp domains information
       Domains app enabled:           true
       Domains app vhosts:            new-example.com newApp.example.com
       Domains global enabled:        true
       Domains global vhosts:         example.com
=====> originalApp domains information
       Domains app enabled:           true
       Domains app vhosts:            example.com
       Domains global enabled:        true
       Domains global vhosts:         example.com
  

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

Я подтвердил, что приложение запущено с помощью dokku logs newApp

В разделе Digital Ocean> Сеть у my newDomain.com есть записи NS Digital Ocean, а также A запись на IP-адрес моего Droplet.

Может ли это иметь какое-то отношение к моей nginx настройке или letsencrypt ?

Ответ №1:

Это возможно, я делал это несколько раз с помощью DigitalOcean droplets, и наконец-то у вас будет свой мини-Heroku. Заставить его работать довольно сложно, но я попытаюсь объяснить свои шаги по его репликации.

Прежде всего, вам нужно развернуть свой DO droplet с помощью Dokku, чтобы начать. Не забудьте выбрать опцию «Использовать имена виртуальных хостов для приложений» во время установки!

В вашем DNS вам нужно будет настроить A запись для доступа к вашему серверу с доменом, который будет содержать ваши различные приложения (поддомены). Создание «базовой» A записи для экземпляра Dokku может упростить доступ к нему, но не является обязательным (влияет только на экземпляр, но не на поддомены приложений!).

 # Enable app subdomain routing
A   *.apps.example.com   <public IP address>

# Optional subdomain for Dokku instance
A   apps.example.com     <public IP address>
  

Теперь вам нужно развернуть два ваших приложения на сервере, чтобы начать настройку. Создайте приложения и разверните их (используйте Google, если вам нужна помощь в его развертывании). Наконец, вы должны увидеть это на своем сервере:

 root@server-dokku-apps:~# dokku apps:list
=====> My Apps
acme-website
bubba-gump-website
  

Теперь вам нужно будет настроить домен для каждого приложения Dokku.

 root@server-dokku-apps:~# dokku domains:add acme-website www.acmewebsite.com
-----> Added www.acmewebsite.com to acme-website
-----> Configuring www.acmewebsite.com...(using built-in template)
-----> Configuring acme-website.apps.example.com...(using built-in template)
-----> Configuring www.acmewebsite.com...(using built-in template)
-----> Creating https nginx.conf
-----> Running nginx-pre-reload
       Reloading nginx

root@server-dokku-apps:~# dokku domains:add bubba-gump-website www.bubbagump.com
-----> Added www.bubbagump.com to bubba-gump-website
-----> Configuring www.bubbagump.com...(using built-in template)
-----> Configuring bubba-gump-website.apps.example.com...(using built-in template)
-----> Configuring www.bubbagump.com...(using built-in template)
-----> Creating https nginx.conf
-----> Running nginx-pre-reload
       Reloading nginx
  

Убедитесь, что вы можете получить доступ к приложениям, используя домены Dokku по умолчанию (пока только http):

 http://acme-website.apps.example.com
http://bubba-gump-website.apps.example.com
  

Если все работает должным образом, настройте каждый домен так, чтобы он указывал на нужное приложение с некоторыми записями CNAME.

 # In your www.acmewebsite.com DNS records
CNAME   www.acmewebsite.com   www.acmewebsite.com.apps.example.com

# In your www.bubbagump.com DNS records
CNAME   www.bubbagump.com   www.bubbagump.com.apps.example.com

  

Последним шагом является настройка letsencrypt для каждого приложения. Чтобы letssencrypt предоставить новый сертификат, ваш новый домен (например. www.acmewebsite.com ) должен быть доступен. Вот почему сначала нам нужно разместить DNS CNAME ! Не забудьте установить dokku-letsencrypt на свой сервер.

 # First for acme website
root@server-dokku-apps:~# dokku letsencrypt acme-website

# Finally for buba website
root@server-dokku-apps:~# dokku letsencrypt bubba-gump-website
  

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

Надеюсь, это поможет.