[英]Register GoDaddy Domain with AWS ec2 instance
我的問題如下。
我想配置我的域,以便http://mytest.com指向http://111.222.333.444:8181/
我對使用 Route53 進行配置的知識也很少,但無法解決端口 8181 的映射問題。
需要幫助來解決這個問題
提前致謝
注意:目前我不是在尋找用於節點 js 部署的 AWS PaaS Elastic Beanstalk
歡樂
您實際上必須做幾件事才能使您的工作正常進行。
由於您在 GoDaddy 注冊了您的主機名,並且您想使用 Route53 作為您的 DNS,您必須做幾件事。
首先,轉到 Route53 並為您的域創建一個托管區域。 出於演示目的,我將使用stackoverflowexample.com
作為我的域。
創建托管區域后,單擊進入它,您應該會看到NS
和SOA
記錄。 NS
記錄列出了您需要使用 GoDaddy 配置的 4 個唯一名稱服務器。
下圖是 NS 記錄集的示例(AWS Route53 將其稱為委托集)。
然后,您必須前往您的注冊商並按照他們的指示更改您的域的名稱服務器,使用 Route 53 分配給您的 4 個名稱服務器作為您的自定義名稱服務器。
然后在路由 53 中創建一個新的A
記錄,指向您的彈性 IP 地址。 最后,您的 Route 53 區域將如下所示,其中A
記錄將您的域映射到您的彈性 IP 地址。
在您設置 DNS 記錄(並等待 DNS 傳播)后,您應該能夠在端口 8181 上訪問您的服務器。
但是你想在沒有端口號的情況下點擊它,那么你怎么做呢?
DNS 本身並不關心端口,它實際上只是提供有關 IP 地址和域名的信息。 您現在需要的是設置代理或其他機制來引導服務器上的流量。 我將提供一些解決方案。
nginx
進行反向代理由於您控制自己的實例,因此您可以在該實例上安裝nginx
(一個 Web/代理服務器)並對其進行配置,以便在收到請求時,它知道如何引導流量。
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 上運行您的 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 美元來維護此區域條目。
對於那些只想將他們的域路由到 ec2 實例的人(已經運行 ec2 實例並擁有域名)。
1.) 前往: https : //dcc.godaddy.com/domains並選擇您的域。
2.) 單擊管理 DNS 並編輯記錄類型 A。
3.) 在Points to
文本框中輸入您的 ec2 實例公共 ip。 節省。 完畢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.