angularjs - Apache 和 Yeoman 在同一服务器上构建 NodeJS 应用程序...虚拟主机?

标签 angularjs node.js apache cname

我一直在尝试在我的 apache 服务器上添加一个 NodeJS 应用程序(由 Yeoman - Angular-fullstack 生成器构建)。 我发现了另一个已回答的问题:Apache and Node.js on the Same Server 建议像这样使用 ProxyPass :

ProxyPass /node http://localhost:8000/

我这样做时遇到的问题是我的应用程序在index.html上启动,其中包含一些带有href的文件。 因为这些 href 并不是这样开始的

href="/node/..."

它们不会被 Proxypass 重定向,因此会导致 404 错误。

我不能只更改所有的 href :这意味着我需要在我的 3 个环境上重新做一遍:开发、生产和测试,即使我这样做了,每次我都会使用 Grunt 来测试我的应用程序,无论如何它都会自动重建我的index.html。 (此外,它并不能解决所有问题,当我这样做时,socketio 出现了一些问题)

我唯一能做的就是像这样使用 ProxyPass :

ProxyPass / http://localhost:8000/

它确实可以工作,绝对没有问题,就像我实际上在本地主机上的服务器上使用该应用程序一样。

唯一剩下的问题是我的服务器上需要有 2 个环境,一个用于生产,一个用于测试,但我做不到

ProxyPass / http://localhost:8000/
ProxyPass / http://localhost:8001/

这显然行不通,因为在任何内容到达第二行之前,所有内容都会被重定向到端口 8000。

所以,我只剩下两个选择:

要么找到另一个解决方案,而不是使用“/”作为重定向到 localhost:8000 的标准,这将以相同的方式工作(并且我没有发现任何工作)

或者使用虚拟主机...还有另一个问题:我真的对网络问题感到不舒服,据我了解,要在同一台计算机上拥有多个虚拟主机,我需要多个 CNAME(每个虚拟主机一个)主机),但我不知道如何列出/添加 CNAMES(我的服务器在 Windows Server 2008 上运行,无法访问万维网),并且我的“管理工具”中没有任何“DNS”应用程序正如我应该根据这个:https://technet.microsoft.com/en-gb/library/cc753579.aspx

非常欢迎任何帮助 提前致谢!

编辑:我真的认为我的解决方案是调整我的 Apache 配置。任何曾经处理服务器配置的人都可以帮助我吗? :/

最佳答案

似乎我所缺少的是

<base href="/node/">

标签(甚至不知道它,Yeoman 将其创建为 )

但我仍然有一个问题:

Socket.io ...我在这里并没有真正遇到自己的问题:它在node_modules中(这很正常,因为我在服务器和客户端中需要它),但尝试将其包含在内,就像我之前所做的那样使用基本 href 失败。 我什至不知道它之前是如何工作的:(index.html:) <script src="socket.io-client/socket.io.js"></script> 知道我的项目文件夹是这样的,这似乎不对:

[项目根目录]

-客户端

--index.html

-node_modules

--socket.io-client

---socket.io.js

关于angularjs - Apache 和 Yeoman 在同一服务器上构建 NodeJS 应用程序...虚拟主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29771189/

相关文章:

javascript - 将 angular $http 与 django urlpatterns 一起使用以获取 json 文件

javascript - 如何在node js mysql查询函数中找到匿名函数外部的返回变量值

javascript - 用于 Meteor 部署的 Nginx 配置

apache - 有人可以查看网络服务器文件夹吗?

apache - sonarqube 升级 5.2 -> 5.6 后,WebServer 不再运行

angularjs - 发布请求后使 $resource 缓存无效

javascript - ESLint 提示 Angular 应用程序中的 GreenSock

javascript - 在 $routeProvider 中组合 .when() 方法

node.js - 通过 hubot-slack 启用 unfurl_links 选项

apache - 将通配符子域重定向到子目录,而不更改地址栏中的 URL