在子域上本地提供静态文件

时间:2021-04-05 11:58:11

标签: node.js vue.js deployment subdomain

我有一个带有 Vue 前端和 Golang 后端的 Web 应用程序。

我正在尝试在本地工作网络上部署前端静态文件。

我在连接到网络的 Windows 服务器上使用 http-server 为它们提供服务。

现在如果我执行

http-server -p 50

我可以通过访问 http://hostname 来访问该应用程序: 50

然而,目标是将其部署到

http://hostname/app

是否可以这样做,如果可以,在最佳实践方面是什么方法。

注意:对于 Vue 静态文件的部署,节点服务器或 golang 服务器都可以。

1 个答案:

答案 0 :(得分:0)

让我们从一些术语更正开始。

  • http://hostname 并不是真正的域。它只是一个引用的 URL 一个不合格的主机名。域通常类似于 yourorgdomain.com(或 .org.edu 或其他此类顶级域; 让我们暂时坚持使用 .com)。您的主机名(完全限定时 在域下)将被标识为 hostname.yourdomain.com。 因此,您的主机名被映射到子域。为了 简单,如果从同一域上的另一台主机引用 和网络域部分是隐含的,因此网络理解这一点,并且像 http://hostname 这样的东西就可以工作。映射在某处 在您的网络配置中。

  • http://hostname/app 不是 http://hostname 的子域;只是 同一主机 http://hostname 下的路径(或更准确地说是资源)。完全限定时,子域类似于 http://app.hostname http://app.hostname.yourdomain.com)

现在解释一下这些网址的工作原理:

考虑 URL http://hostname:50http:// 部分指的是协议,最后的 :50 部分指的是端口号。默认情况下,http 使用端口 80(https 使用 443)。因此,如果您将网络服务器配置为在端口 80 上提供服务,则 :50 部分是多余的。

现在您只需要组织您的网站内容,使其在 http://hostname/app URL 上可用。对静态站点执行此操作的最简单方法是将您的内容托管在相对于站点根目录映射到的位置的 /app/... 目录下。因此,如果您的网络服务器在 .../public 上为目录 http://hostname 提供服务,只需将您的内容移动到 .../public/app,就像您对文件路径所做的那样。就这些

注意事项

但是,如果您真的想将您的应用托管在像 http://app.hostname/ 这样的子域下,那么情况就完全不同了,但简而言之,所引用的最低级别子域(应用)必须映射到主机并且中间子域不能是主机,只能是子网。主机下不能有更多子域。这就是为什么通常网站地址指的是 http://www.example.com,其中 www 映射到实际运行网站的主机

所有这些都忽略了反向代理和负载平衡器的工作原理,并假装展示了上述行为,但又是另一天的故事。