簡體   English   中英

向 AWS ec2 實例注冊 GoDaddy 域

[英]Register GoDaddy Domain with AWS ec2 instance

我的問題如下。

  1. 我在 GoDaddy 注冊了一個域 [假設:mytest.com]
  2. 我在 AWS 有一個 EC2 ALM 實例
  3. 我有與我的實例關聯的彈性 IP [假設:111.222.333.444]
  4. 我開發了一個 nodejs 應用程序並部署在實例中
  5. 該節點應用程序在端口 8181 上運行
  6. 可以使用http://111.222.333.444:8181/ 訪問應用程序
  7. 我想配置我的域,以便http://mytest.com指向http://111.222.333.444:8181/

  8. 我對使用 Route53 進行配置的知識也很少,但無法解決端口 8181 的映射問題。

需要幫助來解決這個問題

提前致謝

注意:目前我不是在尋找用於節點 js 部署的 AWS PaaS Elastic Beanstalk

歡樂

您實際上必須做幾件事才能使您的工作正常進行。

1. 更改 DNS 名稱服務器以指向您的 Route53 托管區域

由於您在 GoDaddy 注冊了您的主機名,並且您想使用 Route53 作為您的 DNS,您必須做幾件事。

首先,轉到 Route53 並為您的域創建一個托管區域。 出於演示目的,我將使用stackoverflowexample.com作為我的域。

創建托管區域后,單擊進入它,您應該會看到NSSOA記錄。 NS記錄列出了您需要使用 GoDaddy 配置的 4 個唯一名稱服務器。

下圖是 NS 記錄集的示例(AWS Route53 將其稱為委托集)。 托管區域名稱服務器示例

然后,您必須前往您的注冊商並按照他們的指示更改您的域的名稱服務器,使用 Route 53 分配給您的 4 個名稱服務器作為您的自定義名稱服務器。

然后在路由 53 中創建一個新的A記錄,指向您的彈性 IP 地址。 最后,您的 Route 53 區域將如下所示,其中A記錄將您的域映射到您的彈性 IP 地址。

為 TLD 添加 A 記錄后的 Route53 區域

2. 在默認 HTTP 端口上托管/代理您的應用程序

在您設置 DNS 記錄(並等待 DNS 傳播)后,您應該能夠在端口 8181 上訪問您的服務器。

但是你想在沒有端口號的情況下點擊它,那么你怎么做呢?

DNS 本身並不關心端口,它實際上只是提供有關 IP 地址和域名的信息。 您現在需要的是設置代理或其他機制來引導服務器上的流量。 我將提供一些解決方案。

使用nginx進行反向代理

由於您控制自己的實例,因此您可以在該實例上安裝nginx (一個 Web/代理服務器)並對其進行配置,以便在收到請求時,它知道如何引導流量。

以下是為反向代理操作配置nginx通用說明

Debian/Ubuntu 的nginx示例

如果您使用的是 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 負載均衡器,從而允許您將傳入請求端口映射到實例上的端口。

如果您使用 Elastic Beanstalk,它也會自動提供給您。

他們有自己的教程,應該會有所幫助

配置您的應用程序以在端口 80 上運行

我自己不會這樣做,這僅在您的實例僅托管一個控制其所有路由的應用程序時才有用。

您可以直接在端口 80 上運行您的 Node 應用程序,而無需在前面使用反向代理。 如果你沿着這條路線走,我建議不要讓服務以root身份運行,而是配置像authbind這樣的authbind來允許對端口 80 的非特權訪問。

如果您想將您的服務綁定到端口 80,我將遵循像SuperUser那樣的其他答案。

補充說明

  • 您會注意到我排除了配置 HTTPS。 這需要更多步驟,例如配置 SSL 證書,盡管 AWS 或 LetsEncrypt 現在免費提供它們。 如果您在實例上使用 Elastic Loadbalancer 或服務器,或者如果您直接公開您的應用程序,配置也會有所不同。

  • 我建議使用nginx ,並且在幾乎所有一般情況下我仍然會推薦它,但是有多個不同的服務器可以用作反向代理。 其他流行的是 haproxy 或 apache httpd 和mod_proxy

您可以使用任何 AWS 公共網關提供商(例如 EC2、ELB、S3)將您的網站或服務器提供給您在 GoDaddy 上擁有的公共域。 AWS 通常每月收取約 0.51 美元來維護此區域條目。

以下步驟設置您的域。

  1. 獲取網站或服務的彈性IP或EC2 IP。
  2. 在 Route53 上創建托管區域。
  3. 更新托管區域上的域名記錄。
  4. 更新 GoDaddy 上的名稱服務器以進行發現。

檢查本教程

對於那些只想將他們的域路由到 ec2 實例的人(已經運行 ec2 實例並擁有域名)。

1.) 前往: https : //dcc.godaddy.com/domains並選擇您的域。

2.) 單擊管理 DNS 並編輯記錄類型 A。

3.) 在Points to文本框中輸入您的 ec2 實例公共 ip。 節省。 完畢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM