让 godaddy 指向自定义 ip 上的特定路径

让 godaddy 指向自定义 ip 上的特定路径

我有一台运行 nginx 的 ec2 机器。它有很多项目,我通常通过以下方式访问它:

https://ai.mydomain.com/myproject

其中一个项目正在独立出来。假设 IP 是 xxx.yyy.aaa.bbb,我该如何让 godaddy 指向那里?

我具体怎样才能得到http://myproject.com指向 -> xxx.yyy.aaa.bbb/myproject

另外,如果我有一个 letsencrypt 证书https://ai.mydomain.com那么,我怎样才能在机器上为不同的域获得两个证书?

答案1

假设 godaddy 指的是 dns 服务,这是不可能的,因为它根本不是 dns 协议的一部分,并且在堆栈的那个级别上没有意义。

您需要的是反向代理或 CDN。反向代理代表您发出请求,并具有其他功能,例如重写请求路径,或根据某些规则联系多个来源。所有这些都是可能的,因为它在 http(s) 级别运行,但隐藏了原始服务器作为实现细节。

一个这样的 cdn 是 amazon cloudfront。在那里可以指定源路径,然后 cloudfront 会将该路径附加到所有请求中。

考虑到您已使用 lets-encrypts 标记了问题,我想指出,aws cloudfront 不需要该功能。AWS 可以为您生成一个证书,供您在 cloudfront 上使用。除非您的流量很大,否则费用相当便宜,每月只需几美分。

这是需要指定原始路径的配置:在此处输入图片描述

答案2

如果这对将来的某人有帮助,我使用 nginx 解决了这个问题:

具体来说:

  1. 让你的 DNS 将两个域名指向你服务器的同一个 IP
  2. 设置两个 nginx 服务器块:一个用于 domain1.com,另一个用于 domain2.com。这些服务器块应指向其根文件夹的不同位置。
  3. 如果您在某个端口(例如 3000)上运行 react、angular 等,请让第二个服务器阻止代理将所有内容通过默认 / 位置或某个自定义位置传递到该端口。

我大致遵循了这篇文章:

https://ubiq.co/tech-blog/configure-multiple-host-names-nginx/

相关内容