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

问题描述 投票:0回答:2

我创建了两个新项目并将其部署在同一个液滴中的数字海洋中。第一个是 django,第二个是 Node js 项目。

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

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

假设数字海洋的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

amazon-web-services networking digital-ocean amazon-route53
2个回答
0
投票

您必须对两个主机名使用相同的公共 IP,并让您的 Droplet 根据 Web 请求的

Host
字段将请求发送到正确的后端。

什么叫做

Virtual Hosting

有很多如何使用 nginx 执行此操作的示例,这只是一个随机示例:https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks- ubuntu-16-04 上的虚拟主机


0
投票

我尝试删除并重新创建虚拟主机并重新启动服务器几次,但它不起作用。nginx 配置是正确的,并且指向确切的项目位置,但仍然指向其他工作项目。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.