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

多里安·富斯科(Dorian Fusco)

我一直在尝试在我的apache服务器上添加一个NodeJS应用程序(由Yeoman构建-angular-fullstack生成器)。我发现了另一个已回答的问题:同一服务器上的Apache和Node.js建议使用ProxyPass,如下所示:

ProxyPass /node http://localhost:8000/

执行此操作时遇到的问题是我的应用程序在index.html上启动,其中包含一些带有href的文件。由于这些href不是这样开始的

href="/node/..."

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

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

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

ProxyPass / http://localhost:8000/

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

唯一剩下的问题是我需要在服务器上有两个环境,分别用于生产和测试,而我做不到

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

显然,它将无法正常工作,因为在所有内容都可以到达第二行之前,所有内容都将重定向到8000 b端口。

因此,我只剩下两个选择:

除了使用“ /”作为重定向到localhost:8000的标准之外,还可以找到另一种解决方案,该解决方案可以以相同的方式工作(但我没有发现任何可行的方法)

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

任何帮助将非常欢迎,谢谢!

编辑:我真的认为我的解决方案是抽搐我的Apache配置。曾经用来处理服务器配置的人可以帮助我吗?:/

多里安·富斯科(Dorian Fusco)

似乎我所缺少的只是一个

<base href="/node/">

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

我仍然有一个问题:

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

[项目根]

-客户

--index.html

-node_modules

--socket.io-client

--- socket.io.js

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章