将GoPardy域名注册到AWS EC2实例 [英] Register GoDaddy Domain with AWS ec2 instance

查看:23
本文介绍了将GoPardy域名注册到AWS EC2实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题如下。

  1. 我在GoPardy[假设:mytest.com]注册了一个域名
  2. 我在AWS有一个EC2 ALM实例
  3. 我的实例关联了弹性IP[假设:111.222.333.444]
  4. 我已经开发了NodeJS应用程序,并在实例中部署
  5. 该节点应用程序正在端口8181上运行
  6. 可以使用http://111.222.333.444:8181/
  7. 访问应用程序
  8. 我要配置我的域,以便http://mytest.com将指向http://111.222.333.444:8181/

  9. 我也缺乏使用Route53进行配置的知识,但无法解决端口8181的映射问题。

需要善意的帮助来解决此问题

提前谢谢

注意:我暂时不寻找用于节点js部署的AWS PaaS弹性豆茎

阿霍伊

推荐答案

您实际上必须做几件事才能使您的东西工作。

1.将域名服务器更改为指向您的Route53托管区域

由于您已向GoPardy注册了主机名,并且希望使用Route53作为您的DNS,因此您必须执行以下几项操作。

首先,转到Route53并为您的域创建一个托管区域。出于演示目的,我将使用stackoverflowexample.com作为我的域。

创建托管区域后,单击该区域,您将看到NSSOA记录。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用于反向代理操作。

nginxDebian/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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆