如何将我的自定义域指向 Google Cloud 实例

如何将我的自定义域指向 Google Cloud 实例

所以我得到了一个域名,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)

设置指向 1.2.3.4 的 A 记录 suputamadre.es

转到 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该请求被你的 Web 服务器在端口 80 上接收,然后 Web 服务器发回一个重定向到 https://suputamadre.es(默认情况下在端口 443 上提供服务,浏览器将使用该端口而无需指定)。这样,所有流量都通过 http 提供服务s在端口 443 上。到端口 80 的任何内容都会重定向到端口 443。

答案2

正如 DrewZa 所指出的,您可以使用 nginx 来实现这些目的。它是一款出色的轻量级 Web 服务器。请看这里:

在 Google Cloud Platform 上安装 NGINX Plus

至于从 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

相关内容