将GoPardy域名注册到AWS EC2实例 [英] Register GoDaddy Domain with AWS ec2 instance
问题描述
我的问题如下。
- 我在GoPardy[假设:mytest.com]注册了一个域名
- 我在AWS有一个EC2 ALM实例
- 我的实例关联了弹性IP[假设:111.222.333.444]
- 我已经开发了NodeJS应用程序,并在实例中部署
- 该节点应用程序正在端口8181上运行
- 可以使用http://111.222.333.444:8181/ 访问应用程序
我要配置我的域,以便http://mytest.com将指向http://111.222.333.444:8181/
我也缺乏使用Route53进行配置的知识,但无法解决端口8181的映射问题。
需要善意的帮助来解决此问题
提前谢谢
注意:我暂时不寻找用于节点js部署的AWS PaaS弹性豆茎
阿霍伊
推荐答案
您实际上必须做几件事才能使您的东西工作。
1.将域名服务器更改为指向您的Route53托管区域
由于您已向GoPardy注册了主机名,并且希望使用Route53作为您的DNS,因此您必须执行以下几项操作。
首先,转到Route53并为您的域创建一个托管区域。出于演示目的,我将使用stackoverflowexample.com
作为我的域。
创建托管区域后,单击该区域,您将看到NS
和SOA
记录。NS
记录列出了您需要使用GoPardy配置的4个唯一名称服务器。
下图是NS记录集的示例(AWS Route53将其称为委派集)。
然后,您必须转到您的注册商并遵循他们的directions to change nameservers for your domain,使用将您指定为您的自定义名称服务器的4个名称服务器。
然后在路由53中创建指向您的弹性IP地址的新A
记录。最后,您的Road 53区域将如下所示,并有一个A
记录将您的域映射到您的弹性IP地址。
2.在默认HTTP端口上托管/代理您的应用程序
在设置了DNS记录(并等待了一段时间以传播DNS)之后,您应该能够通过端口8181访问您的服务器。
但是您想在没有端口号的情况下点击它,那么如何做到这一点呢?
DNS本身并不关心端口,它只提供有关IP地址和域名的信息。您现在需要的是设置一个代理或其他机制来引导服务器上的流量。我将提供几个解决方案。
使用nginx
反向代理
由于您控制自己的实例,因此您可以在该实例上安装nginx
(Web/代理服务器)并对其进行配置,以便当它收到请求时,它知道如何定向流量。
Here are generic instructions用于配置nginx
用于反向代理操作。
nginx
Debian/Ubuntu示例
如果您使用的是Debian或Ubuntu,则简单设置如下:
# Install nginx
sudo apt-get update && sudo apt-get install nginx
# By default, nginx runs a default site on port 80 you don't care about
# This removes the symlink for the default nginx site
sudo rm /etc/nginx/sites-enabled/default
然后您需要在sites-available
中创建您自己的配置。
sudo vim /etc/nginx/sites-available/mainsite
文件内容可能如下所示:
server {
listen 80;
server_name stackoverflowexample.com;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
# Proxy all requests to the NodeJS app on port 8181
proxy_pass http://localhost:8181;
}
}
完成后,执行下两个步骤
# symlink your new nginx config to sites-enabled, which nginx
# automatically discovers and loads.
sudo ln -s /etc/nginx/sites-available/mainsite /etc/nginx/sites-enabled/mainsite
# Reload nginx configuration
sudo service nginx reload
现在尝试在没有端口的情况下访问您的站点-您应该可以访问您的应用程序。
使用弹性负载均衡器
AWS提供负载均衡器服务(每个负载均衡器每月额外收费约20美元),允许您为应用程序配置HTTP和/或HTTPS负载均衡器,允许您将传入请求端口映射到实例上的端口。
如果您使用弹性豆茎,它也会自动提供给您。
他们有自己的tutorial which should help。
将应用程序配置为在端口80上运行
我自己不做此操作,仅当您的实例将只托管一个控制其所有路由的应用程序时,此操作才有用。
您可以在端口80上直接运行Node应用程序,而不需要前面的反向代理。如果您沿着这条路走,我建议您不要允许该服务以root
身份运行,而是配置类似authbind
的身份,以允许非特权访问端口80。
如果您要将服务绑定到端口80,我将听从this SuperUser one之类的其他答案。
附加说明
您会注意到我排除了配置HTTPS。这需要更多的步骤,比如提供SSL证书,尽管AWS或LetsEncrypt现在免费提供这些证书。如果您在实例上使用弹性负载均衡器或服务器,或者如果您直接公开您的应用程序,配置也会有所不同。
我建议
nginx
,我仍然会在几乎所有的一般情况下推荐它,但有多个不同的服务器可以用作反向代理。其他流行的是带有mod_proxy
的haxy或apacheHTTPD。
这篇关于将GoPardy域名注册到AWS EC2实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!