如何允许客户在服务网站上为自己的页面设置自定义域?

yah*_*rga 1 .htaccess redirect cname reverse-proxy node.js

我想实现Intercom为其客户提供的相同功能;它们允许为文章实现自定义域。我不太确定他们如何实施他们的方法,或者他们在幕后做了什么,确切地说。

采取以下场景;客户(NorthWind 公司)在我公司的网站(northwind.example.com)上有一个子域。

将发生以下情况:

  • 如果用户键入northwind.example.com,他们将转到northwind.example.comnorthwind.example.com出现在 url 栏中。
  • 如果用户键入example.northwind.com,他们将转到northwind.example.comexample.northwind.com出现在 url 栏中。

Intercom 实现它的方式与我希望实现它的方式之间的区别在于我使用的是subdomain,而不是目录,如上面链接的 Intercom 帮助文章中所示。


考虑到我的网站在 Nginx、NodeJS 和 MongoDB 上运行,这是我目前想到的:

  • 客户在他们的域提供商上注册了一个 CName 记录,以指向他们在我网站上的页面。
  • 客户提供他们用于我网站的 CName 记录(通过表格注册)。
  • 我在 MongoDB 中为公司及其自定义域保存了一条记录。
  • 我注册或重新注册我网站的反向代理,使用redbird允许重定向通过。

我已经研究了Redirect Web Page to another Site without changed URLDoes a Cname Change the URL that the Browser Displays

我是在正确的道路上,还是有更好的方法?

yah*_*rga 5

我决定通过他们的支持渠道向 Intercom 自己寻求答案,我得到了以下答复:

这实际上并不是我们做的任何特别的事情,这完全与 Web 服务器的配置有关,无论是在我们这边还是在客户端。

此 stackoverflow 对此有更多详细信息,但请记住,虽然它是一个 ruby​​ StackOverflow - 它专注于网络服务器设置,在这种情况下是 nginx - 但它可以是任何网络服务器软件。

如何使用 nginx proxy_pass 保留请求 url

这样一来,您的服务就可以接收请求,而且还可以访问原始服务器地址 - 然后我们会要求我们的客户提供他们在文章设置中使用的自定义域,以帮助我们将服务器地址转换到正确的帮助中心。

我确实希望这会有所帮助,如果您有任何后续问题,我很乐意尝试提供帮助,但正如您提到的,这确实超出了我们团队的范围,因此我可以提供的帮助可能有限。

对回应非常满意,因为他们对我来说超越了。基本上,我走的路是正确的。我决定留下这个问题来帮助别人。我还发现了以下相关问题:

祝找到这个的人好运。