我尝试使用dokku Droplet在Digitalocean上部署两个nodeJS应用程序。我正在使用“虚拟主机命名”方案但是存在问题。
我的DNS配置如下所示:
我有主应用程序和管理员应用程序。我希望在访问app.example.com时查看管理员应用程序(我实际上有一个合适的域名),但是当我点击example.com和app.example.com时,我可以看到相同的应用程序。
nginx可能有问题,但我不确切知道什么是坏事?
答案 0 :(得分:0)
我注意到的一件事是,首先安装的应用程序将是example.com转发的应用程序。
将此行为归因于Nginx是正确的。我认为这是因为当它没有检测到example.com的配置时它会以某种方式回到这个配置
这个dokku插件(https://github.com/progrium/dokku/tree/master/plugins/nginx-vhosts)负责每次部署时为每个应用程序重写nginx.conf。
现在它使用模板nginx.conf(https://github.com/progrium/dokku/blob/master/plugins/nginx-vhosts/templates/nginx.conf)虽然这是一个相当新的更改,所以请确保你在最近的版本。
您将得到一个如下所示的Nginx配置:
server {
listen [::]:80;
listen 80;
server_name app.example.com;
return 301 https://$host$request_uri;
}
我目前不确定为什么上面的代码段会导致所描述的行为。解决方法是在/ etc / nginx / sites-enabled / with
中设置自己的nginx confserver_name example.com;
但是指向一个暂停页面或任何适合你的页面。