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

Node.js 在子域上本地提供静态文件,node.js,vue.js,deployment,subdomain,Node.js,Vue.js,Deployment,Subdomain,我有一个带有Vue前端和Golang后端的web应用程序 我正在尝试在本地工作网络上部署前端静态文件 我使用连接到网络的windows服务器上的http服务器为他们提供服务 现在如果我执行 http-server -p 50 我可以通过访问http://hostname: 五十 但是,我们的目标是将其部署到 http://hostname/app 是否有可能做到这一点,如果有,最佳做法方面的做法是什么 注意:对于Vue静态文件的部署,节点服务器或golang服务器都可以使用。让我们从一些术语

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

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

我使用连接到网络的windows服务器上的http服务器为他们提供服务

现在如果我执行

http-server -p 50
我可以通过访问http://hostname: 五十

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

http://hostname/app
是否有可能做到这一点,如果有,最佳做法方面的做法是什么

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

让我们从一些术语更正开始。
  • http://hostname
    实际上不是一个域。它只是一个指向 不合格的主机名。域通常类似于
    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:50
http://
部分指的是协议,末尾的
:50
部分指的是端口号。默认情况下,http使用端口80(https使用443)。因此,如果将web服务器配置为在端口80上运行,则
:50
部分是多余的

现在,您只需组织您的网站内容,以便在
http://hostname/app
URL。对于静态站点,最简单的方法是将您的内容托管在
/app/…
目录下,相对于您的站点根映射到的位置。因此,如果您的web服务器在
http://hostname
,只需将内容移动到
../public/app
,就像文件路径一样。就这些

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

所有这些都忽略了反向代理和负载平衡器是如何工作的,并假装表现出上述行为,但这又是另一天的长话短说