【问题标题】:How to handle a "two or more dot url" with nodejs如何使用 nodejs 处理“两个或多个点 url”
【发布时间】:2021-10-12 08:01:22
【问题描述】:

我想用 node js 处理一个像这样的 url:“music.youtube.com”,就像我们处理带参数的 url 一样。我验证了,youtube.com 和 music.youtube.com 有相同的 ip,所以它们在同一个域名上。 (我无法验证端口,但我认为它们也是一样的) 提前致谢!

【问题讨论】:

  • 你的问题不够清楚。
  • http://music.youtube.com 之类的 URL 是通过 DNS 中的子域完成的。如何设置子域取决于您为 DNS 托管服务使用的人。

标签: node.js url routes


【解决方案1】:

如前所述,您的问题需要澄清一点,但话虽如此..

仅仅因为它们具有“相同”IP,并不意味着它们在“相同”域或“服务器”上。

大多数企业应用程序将位于 WAF(Web 应用程序防火墙)之后,该防火墙将在任何和所有请求进入之前充当代理。它们将读取传入请求,检查恶意操作等,并选择将请求转发到目标服务器与否。

因此,在 DNS 级别上,您将让所有域都指向一个“范围”的 IP,这些 IP 本质上是 WAF,然后 WAF 有关于它应该去哪里的路由说明(A 记录或 CName)。然后,这通常会检查流量,如果正常,它将转发到 coreect IP 或 CName,其标头包含 IP 等信息(这是 NGINX 中的 proxypass 用于日志记录等的地方)

现在我们有了一些背景知识..

如果您的应用程序因 URL 而“不同”,那么您应该考虑设置“两个”不同的应用程序并分别运行它们。虽然可以在同一台服务器上运行它们,但问题是为什么?

为什么这个问题是为什么?好吧,如果它们确实是分开的,那么您不希望它们竞争相同的资源/事件循环,是的,您可以在同一个盒子上将它们作为两个独立的应用程序运行,但是为什么?使用专用于该应用程序的资源启动另一个盒子会更好地为您服务,这样您就可以更好地控制和分离关注点(如果应用程序出现问题,它不会使应用程序 2 崩溃)

反之,如果 URL 更像是一个虚 URL,那么您只需在 NGINX 配置中设置重定向规则,以简单地将 URL subdmain.tld.xyz 传递到应用程序中的正确页面。

【讨论】:

    猜你喜欢
    • 2019-09-22
    • 2014-04-10
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 1970-01-01
    相关资源
    最近更新 更多