找不到 Dokku 子域
Dokku subdomain cant be found
我向我的 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 > Networking 部分,我的 newDomain.com
有 Digital Ocean NS 记录以及我的 Droplet IP 的 A
记录。
这可能与我的 nginx
设置或 letsencrypt
有关吗?
有可能,我已经用 DigitalOcean droplets 做了几次,你终于有了你的 mini-Heroku。让它工作有点棘手,但我会尝试解释复制它的步骤。
首先,您需要使用 Dokku 部署 DO Droplet 才能开始。请记住在安装过程中select选项“为应用程序使用虚拟主机命名”!
在您的 DNS 中,您必须配置一个 A
记录来访问您的服务器,该域将包含您的不同应用程序(子域)。
为 Dokku 实例创建一个“基础”A
记录可以使其更易于访问,但不是必需的(仅影响实例,不影响应用程序子域!)。
# 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) need to be accessible. This is why we first need to place the DNS CNAME
! Remember to install 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。
希望对您有所帮助。
我向我的 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 > Networking 部分,我的 newDomain.com
有 Digital Ocean NS 记录以及我的 Droplet IP 的 A
记录。
这可能与我的 nginx
设置或 letsencrypt
有关吗?
有可能,我已经用 DigitalOcean droplets 做了几次,你终于有了你的 mini-Heroku。让它工作有点棘手,但我会尝试解释复制它的步骤。
首先,您需要使用 Dokku 部署 DO Droplet 才能开始。请记住在安装过程中select选项“为应用程序使用虚拟主机命名”!
在您的 DNS 中,您必须配置一个 A
记录来访问您的服务器,该域将包含您的不同应用程序(子域)。
为 Dokku 实例创建一个“基础”A
记录可以使其更易于访问,但不是必需的(仅影响实例,不影响应用程序子域!)。
# 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) need to be accessible. This is why we first need to place the DNS CNAME
! Remember to install 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。
希望对您有所帮助。