【问题标题】:Serving static file locally on a subdomain在子域上本地提供静态文件
【发布时间】:2021-04-05 11:58:11
【问题描述】:

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

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

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

如果我现在执行

http-server -p 50

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

但是,我们的目标是将其部署在

http://hostname/app

是否可以这样做,如果可以的话,就最佳实践而言,方法是什么。

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

【问题讨论】:

    标签: node.js vue.js deployment subdomain


    【解决方案1】:

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

    • 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 的工作原理:

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

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

    注意事项

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

    所有这一切都忽略了反向代理和负载平衡器的工作方式,并假装表现出上述行为,但这又是另一回事了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 2013-01-13
      • 2021-10-31
      相关资源
      最近更新 更多