Dokku поддомен не может быть найден - PullRequest
0 голосов
/ 03 апреля 2019

Я развернул приложение на своем экземпляре 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

В Цифровом океане>В разделе «Сеть» у моего newDomain.com есть записи Digital Ocean NS, а также запись A для IP-адреса моей капли.

Может ли это быть как-то связано с моей настройкой nginx или letsencrypt?

1 Ответ

0 голосов
/ 03 апреля 2019

Возможно, я сделал это несколько раз с цифровыми океанскими каплями, и у вас наконец-то будет свой мини Heroku. Это сложно сделать, но я постараюсь объяснить, как это сделать.

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

In your DNS you will have to configure an A record to access your server with a domain that will hold your apps

A   *.apps.example.com   <public IP address>

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

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

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

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

Пока что мы должны проверить, можно ли получить доступ к приложениям, используя следующие ссылки (пока только 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 для каждого приложения. Чтобы letsencrypt получил новый сертификат от вашего нового домена ex. Сайт 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.

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

...