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 证书后我的问题就解决了
我创建了两个新项目并将其部署在同一个 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 证书后我的问题就解决了