2015-04-21 33 views
2

我一直在尝试在我的apache服务器上添加一个NodeJS应用程序(由Yeoman - angular-fullstack generator生成)。 我发现这个人回答了问题:Apache and Node.js on the Same Server 建议使用的ProxyPass这样的:Apache和Yeoman在同一台服务器上构建NodeJS应用程序...虚拟主机?

ProxyPass /node http://localhost:8000/ 

,当我做到这一点的是,我的应用程序在一个index.html至极开始我遇到的问题包括与HREF一些文件。 由于这些HREF中没有这样开始

href="/node/..." 

他们不会被重定向PROXYPASS,从而导致404错误。

我不能只是改变所有的hrefs:这意味着我需要在我的3环境中重新开始:开发,生产和测试,即使我这样做了,每次我都会使用Grunt来测试我的应用程序,它会自动重建我的index.html。 (此外,它并没有解决所有问题,也有一些问题socketio出现,当我做到这一点)

只有我可以做的事情,然后使用的ProxyPass这样的:

ProxyPass/http://localhost:8000/ 

有它的作品,绝对没有问题,就像如果我真的从本地主机上的服务器上使用应用程序。

唯一剩下的问题是,我需要有我的服务器上2个环境,对生产和做检查,我只是不能做

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

它显然不会,因为一切工作将在任何可以到达第二条线之前被重定向到港口8000。

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

要么找到比使用另一种解决办法“/”为准则重定向到本地主机:8000会以同样的方式工作,(我没找到任何工作)

或使用虚拟主机......还有另一个问题:我真的不能解决网络问题,从我的理解,有几台虚拟主机在同一台机器上,我需要几个CNAMES(每个虚拟主机一个),但我不知道如何列出/添加CNAMES(我的服务器在Windows Server 2008上运行,无法访问万维网),并且我没有任何“DNS”应用程序“管理工具”,正如我所想的那样d来根据这个:https://technet.microsoft.com/en-gb/library/cc753579.aspx

任何帮助将非常欢迎 在此先感谢!

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

+0

您可以尝试为所有的AJAX请求加前缀,然后在ProxyPass中使用该前缀。 – Paras

+0

我不认为这些是AJAX请求,只是一些简单的HTML HREF属性,并且由于Yeoman几乎覆盖了我在index.html上做的任何事情,这不会是一个长期的修复,因为我需要重做每次我有新版本投入生产/测试 –

+0

这些href的结构是什么? – Paras

回答

1

好像所有我缺少的是一个

<base href="/node/"> 

标签(甚至不知道这件事,并约曼创建它)

我仍然有,虽然一个问题:

Socket.io ...我真的没有在这里得到我自己的问题:它在node_modules(这是正常的,因为我需要它在我的服务器和我的客户端),但试图包括它,因为我之前使用基础href失败。 我甚至不明白是怎么做前工作:(index.html的:) <script src="socket.io-client/socket.io.js"></script> 这似乎并不正确知道我的项目文件夹是这样的:

[项目根]

-client

--index.html

-node_modules

--socket.io客户端

--- socket.io.js

相关问题