AWS Route 53 - 将流量路由到 Digital Ocean 托管项目

AWS Route 53 - Route traffic to Digital Ocean hosted project

我创建了两个新项目并将其部署在同一个 droplet 中的 Digital ocean 中。一个是django,第二个是node js项目。

该域实际上托管在 aws 中,因此第一个已经可以使用

    sample.maindomain.com (django)
    maindomain.com (nodejs) //currently trying to figure out how route this domain toi nodejs project

假设 Digital oceans 的 IP 地址是 167.162.169.224

所以 Route 53 是这样配置的

     Recordname             Type     Routing         Value/Route traffic to
     sample.maindomain.com  A        Simple          167.162.169.224
     maindomain.com         A        Simple          what should be the value ?

我在 nginx 中创建了两个单独的文件,因为反向代理看起来像这样

//sample.maindomain.com(django)

    server {

           Server_name sample.maindomain.com www.sample.maindomain.com

           location /
             ................


    

// maindomain.com(nodejs)

    server {
           server_name maindomain.com www.maindomain.com
           
           root /home/projectdir/nodejsproject;
        location / {
            proxy_pass http://localhost:3000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
}

}

           ....................
           .......................

所以问题是,我如何路由 maindomain.com 以便它指向托管在 Digital Ocean 中的 nodejs 项目 nginx 配置?

实际上,如果项目部署在 Ec2 实例中,通过将域或子域指向 CNAME 更容易添加子域,如 ec2-19-192-107-202.eu-central-1.com

您必须为两个主机名使用相同的 public IP,并根据网络请求的 Host 字段让您的 Droplet 将请求发送到正确的后端。

什么叫Virtual Hosting.

有很多关于如何用 nginx 做到这一点的例子,这只是一个随机的例子:https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04

我尝试删除并重新创建虚拟主机并重新启动服务器几次,但没有成功 working.The nginx 配置正确并指向确切的项目位置,但它仍然指向其他工作项目。

经过多次谷歌搜索,我意识到我需要将ssl证书添加到项目中并使用certbot安装它https://www.nginx.com/blog/using-free-ssltls-certificates-from-lets-encrypt-with-nginx/

我不确定为什么添加 ssl 证书后我的问题就解决了