Jam*_*e S 4 subdomain 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
Run Code Online (Sandbox Code Playgroud)
最终目标是让两个独立的域指向各自的应用程序。(这甚至可能吗?)但目前,我什至无法让子域工作。
我确认该应用程序正在运行 dokku logs newApp
在 Digital Ocean > Networking 部分,我newDomain.com
有 Digital Ocean NS 记录以及A
我的 Droplet 的 IP 记录。
这可能与我的nginx
设置有关letsencrypt
吗?
这是可能的,我已经用 DigitalOcean droplets 做了几次,你终于拥有了你的迷你 Heroku。让它工作有点棘手,但我会尝试解释我复制它的步骤。
首先,您需要使用 Dokku 部署 DO droplet 才能开始使用。请记住在安装过程中选择“为应用程序使用虚拟主机命名”选项!
在您的 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>
Run Code Online (Sandbox Code Playgroud)
现在您需要在服务器上部署您的两个应用程序以开始配置。创建应用程序并部署它们(如果您需要帮助来部署它,请使用谷歌)。最后,您应该在服务器中看到:
root@server-dokku-apps:~# dokku apps:list
=====> My Apps
acme-website
bubba-gump-website
Run Code Online (Sandbox Code Playgroud)
现在您需要为每个 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
Run Code Online (Sandbox Code Playgroud)
检查您是否可以使用默认的 Dokku 域访问应用程序(目前只有 http):
http://acme-website.apps.example.com
http://bubba-gump-website.apps.example.com
Run Code Online (Sandbox Code Playgroud)
如果一切正常,请将每个域配置为指向具有一些 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
Run Code Online (Sandbox Code Playgroud)
最后一步是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
Run Code Online (Sandbox Code Playgroud)
在所有这些混乱之后,您应该有两个闪亮的应用程序在它们自己的域中运行,并启用了 HTTPS。
希望这可以帮助。
归档时间: |
|
查看次数: |
907 次 |
最近记录: |