2017-02-23 53 views
0

NodeRed在虛擬機上安裝了美分OS 7.x的的Apache 2.4.6(CentOS的)。節點紅色 - 丟失連接端口從1880重定向後的子目錄

如果我打開網址http://10.1.1.1:1880/,一切正常。我可以部署節點並查看調試。但是我需要在特殊位置使用Node Red。 下一步是在我的httpd.conf中配置Proxy Pass。

結果:節點紅色在http://10.1.1.1/nr/下可用。但幾秒鐘後,我收到以下錯誤消息。

Lost connection to server, reconnecting in 44s. Try now 

然後我嘗試一樣,還加入了端口配置爲443, 結果:紅色節點可https://10.1.1.1/nr/下,它正在爲幾秒鐘。然後同樣的錯誤信息(+或 - 幾秒鐘)出現

Lost connection to server, reconnecting in 54s. Try now 

然後我檢查了控制檯在瀏覽器 錯誤代碼:

WebSocket connection to 'ws://10.1.1.1/nr/comms' failed: Error during WebSocket handshake: Unexpected response code: 404 a @ red.min.js:16 

OK,似乎這是一個問題WebSocket。 如果有人有一個想法,很好,因爲我嘗試了不同的解決方案添加了Load Modules,並且目前並不是一個真正的想法。祝一切順利。

PS:這是我的代理通在httpd.conf設置

<VirtualHost *:80> 
    ServerName 10.1.1.1 
    RewriteEngine On 
    RewriteCond %{REQUEST_URI} ^/socket.io   [NC] 
    RewriteCond %{QUERY_STRING} transport=websocket [NC] 
    RewriteRule /(.*)   ws://localhost:1880/$1 [P,L] 
    ProxyPass /nr/ http://127.0.0.1:1880/ timeout=360 
    ProxyPassReverse /nr/ http://127.0.0.1:1880/ 
</VirtualHost> 
+0

用您在apache配置中的代理傳遞設置編輯問題。這很可能是因爲您尚未啓用WebSocket代理。 – hardillb

回答

1

我不知道什麼RewriteRule在做什麼,但我認爲你需要使用的mod_proxy_wstunnel模塊和ProxyPass規則像這樣:

ProxyPass "/nr/comms" "ws://localhost:1880/comms" 
+0

刪除了引號,在httpd中添加了代理通行證,刪除了RewriteEngine,保存了,重新啓動了服務。有效。謝謝 – Mchoeti