2015-04-21 13 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

相關問題