![如何將我的自訂網域指向Google雲端實例](https://rvso.com/image/747359/%E5%A6%82%E4%BD%95%E5%B0%87%E6%88%91%E7%9A%84%E8%87%AA%E8%A8%82%E7%B6%B2%E5%9F%9F%E6%8C%87%E5%90%91Google%E9%9B%B2%E7%AB%AF%E5%AF%A6%E4%BE%8B.png)
所以,我得到了一個域名,suputamadre.es
我啟動了一個谷歌雲端實例並為其分配了一個IP,例如1.2.3.4
我啟動了 django 伺服器來監聽 0.0.0.0:80
我嘗試透過 chrome 進行連接http://1.2.3.4或者http://1.2.3.4:80它有效。偉大的。
在 Google Cloud DNS 上設定我的網域名稱(從 GoDaddy 購買的域名,因此將網域名稱伺服器指向 Google Cloud)
設定一筆A記錄suputamadre.es指向1.2.3.4
到 cmd 並執行 ping suputamadre.es 回傳 1.2.3.4
進入瀏覽器並寫入suputamadre.es會傳回連線拒絕錯誤,但是suputamadre.es:80可以運作。這是為什麼?我怎麼才能將該網域指向我的伺服器?試過CNAME,也沒用...
在討論主題時,有沒有辦法將其指向 :80 和 :443 以支援 SSL,而無需運行兩個並發伺服器?或甚至將網域指向 1.2.3.4:8000,而無需使用重定向(因為 SRV 在瀏覽器中不起作用)?
非常感謝。我已經被困在這個問題上兩天了,無論我嘗試用谷歌搜尋什麼似乎都不適合我。更不用說如果我在谷歌上搜尋有關“DNS A 寄存器”的內容,谷歌會認為我正在談論A登記...
答案1
看來你的問題已經部分解決了。如果我把http://suputamadre.es在我的瀏覽器中,我可以看到您的“Django 設定完成”頁面,所以這似乎有效。
關於 :80 與 :443 SSL 問題,這通常是透過連接埠 80 上的重定向來完成的。http://suputamadre.es它由您的網頁伺服器在連接埠 80 上接收,然後網頁伺服器傳回重定向到 https://suputamadre.es(預設在連接埠 443 上提供服務,瀏覽器將使用該端口,而無需指定它)。這樣所有流量都透過 http 提供s在連接埠 443 上。
- 若要在 Nginx 中設定重定向,請參閱此處:在Nginx中,如何在維護子域的同時將所有http請求重寫為https?
- 若要在 Apache 中設定重定向,請參閱此處:在 Apache 中從 http 重定向到 https
答案2
正如 DrewZa 所指出的,您可以使用 nginx 來實現這些目的。這是一個不錯的輕量級網頁伺服器。看這裡:
至於連接埠從80轉送到443:
在 nginx.conf 檔案中建立一個伺服器條目,您可以執行以下操作:
server {
listen 80;
server_name suputamadre.es;
proxy_set_header X-Real-IP $remote_addr;
location / {
rewrite ^ https://$host$uri permanent;
}
}
這會將所有請求從 80 重定向到 443