我将一个应用程序部署到了我的Digital Ocean Dokku实例,并使用https://example.com
(使用letencrypt 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>网络部分,我的newDomain.com
拥有Digital Ocean NS记录以及A
记录到我Droplet的IP。
这与我的nginx
设置或letsencrypt
有什么关系吗?
答案 0 :(得分:0)
有可能,我已经用数字海洋飞沫完成了几次,最后您将拥有迷你Heroku。使它工作起来有点棘手,但我将尝试解释复制它的步骤。
首先,您需要使用dokku部署DO Drop以开始使用,并记住在安装时选择选项“应用程序的用户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
现在,您需要为每个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
到目前为止,我们应该检查是否可以使用以下链接访问应用程序(到目前为止,仅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。为了让encrypt获得新域名的新证书。需要访问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的域中运行两个shinny应用程序。
希望有帮助。