我對Redis和Node.js非常感興趣,但我想使用Redis增強我的Web應用程序性能,並使用Node.js添加實時通知功能。Redis - 在一臺機器上的Node.js?
現在,我已經添加了1個EC2實例來爲這兩個進程提供服務,將它與彈性IP地址及其關聯的子域綁定。 但是,我在Redis網站上看到,運行Redis的機器不應暴露於不受信任的環境。
從http://redis.io/topics/security
的Redis的設計是由受信任的客戶端訪問內部的信任 環境。這意味着通常將Redis實例直接暴露給互聯網或者通常情況下暴露於 環境中不受歡迎的客戶端可以直接訪問Redis TCP 端口或UNIX套接字。
另一方面,監聽websocket協議的Node.js必須暴露給互聯網,以便我的Web應用程序可以與它進行實時交互。
所以我的第一個問題是,我真的需要2個EC2實例,每個實例都用於Redis和Node.js?
我的第二個問題是: 保持我現有的PHP會話並讓Node.js識別使用PHP會話的just-loggedin用戶的最佳方式是什麼?
我幾乎修改了我的PHP會話,將它從表內會話更改爲Redis會話,直到我從上面的Redis網站閱讀指南。
謝謝。
讓您的Redis實例在環回('127.0.0.1'或':: 1')上偵聽,或者甚至更好的UNIX套接字(它們存在於文件系統中,並且它們的訪問權可以受文件權限保護)而不是外部IP地址。這解決了你的主要問題。 –
我已經在redis中取消註釋綁定127.0.0.1。conf,重新啓動redis-server,然後從nodejs客戶端偵聽。使用predis作爲從redis實例遠程安裝的PHP的其他客戶端,我嘗試發佈消息,並且nodejs客戶端成功識別該消息。這是否意味着我的redis實例已經與外部隔離,但仍能夠獲得發佈的消息?謝謝 – robotijo