如何为我的 Golang 服务器分配域名?

How to assign domain name to my Golang server?

这可能是一个非常基本的问题,但我已经卡了 2 天了

我在 Namecheap 上购买了域名 AAA.xyz,我的 Golang 网络服务器 运行 在我的端口 :8095 上(我在路由器上重定向了我的端口,所以我的服务器是使用我的 public IP http://93.6.XXX.YYY:8095/)

可以从任何地方访问

如何使我的 Namecheap 域名指向具有正确端口的 IP 地址,这样当我在浏览器上输入 AAA.xyz 时,我会收到 API 的响应?

您必须编辑您的 namecheap DNS 设置以添加一个 A 记录,它将指向您的服务器 IP。这足以将所有流量转移到您的域和您的服务器。

不过,除非它不是生产设置,否则最好让像 nginx 这样的反向代理服务器处理传入的 http 流量。那么你也不必将你的端口暴露给外界。 (除非你想)。

安装nginx。将代理传递添加到您的 nginx 配置文件,它将所有到达端口 8095 的请求路由到您的应用程序 127.0.0.1:8095.

当您在服务器上的不同端口上有多个 go 应用程序 运行 时,这也会对您有所帮助。您可以使用不同的 URL 指向不同的应用程序。

例如https://yourdomain.com/app1 将转到 127.0.0.1:8095 https://yourdomain.com/app2 将转到 127.0.0.1:8096

奖励:您可以使用 Letsencrypt 免费为您的 nginx 服务器提供 HTTPS 证书,然后与您的应用程序的所有通信都将通过 HTTPS 上的端口 443 进行,而无需配置每个应用程序来处理该证书。

此外,在防火墙中打开端口 80 和 443。

如果您需要有关特定步骤的任何帮助。我会详细说明。