2015-09-05 73 views
3

我在不同的端口上運行多個Node.js服務器,並在客戶端使用Websocket與這些不同的服務器連接。客戶正在使用Ajax調用,而不使用websocket也使用給定的服務器端口,並且一切工作正常。在Apache Proxy後面運行多個Node.js服務器

現在的問題是,因爲我使用非標準端口運行多個node.js服務器,所以在從客戶端進行調用時,它們被防火牆阻止。所以我想在它們之間引入一個Apache代理,並將所有重新測試發送到標準端口80上的apache,然後在後臺與多個Node.js服務器交互。我試圖解釋附件中的現有和期望的senario。

需要您的幫助才能擁有適當的Apache代理配置才能使其正常工作。 enter image description here

回答

1

您可以嘗試使用虛擬主機和代理服務器。

<VirtualHost *:80> 
     ProxyRequests off 
     <Proxy *> 
       Order deny,allow 
       #Require all granted 
       Allow from all 
     </Proxy> 

     ProxyPass /A?query http://example.com/app 
     ProxyPassReverse /A?query http://example.com/app 

     ProxyPass /B?query http://localhost:8081/$1 
     ProxyPassReverse/B?query http://localhost:8081/$1 

     ProxyPassMatch "^(/.{1,})$" http://localhost:8082/$1 
     ProxyPassReverse "^(/.{1,})$" http://localhost:8082/$1 

    </VirtualHost> 
+1

謝謝Mahesh。我使用基於Node.js的代理解決了我的問題,而不是使用Apache。其實這裏給出的港口也是動態的。此解決方案正在使用以下設置:http://www.tutorialspoint.com/codingground.htm – user1405309

+0

嗨!你能否提供一個鏈接到這個單獨的教程,因爲我想嘗試相同的事情? –