ruby-on-rails – 会话可以在Heroku上使用多个web dynos吗?
如果您在Heroku上运行带有多个Web dynos的Rails 3应用程序,
>每次点击应用程序时,您是否通常使用不同的网络动态连接? 解决方法
简而言之 – 会话将适用于多个网络动态.
Sessions可以在Web dynos上运行 – 因为Rail的会话支持设计允许它.如果有的话,web dyno模型正是Rail的横向扩展方式. 1.每次点击应用程序时,您是否通常使用不同的网络dyno连接? 基于heroku文档:
所以dyno选择是随机的……但是dyno必须安装你的应用程序.因此,如果您有多个dyno,那么您最终可能会连接到不同的dyno(这很重要,因为这有助于实现负载平衡和高可用性) 2.会话可以跨越不同的网络动态吗? 是.大多数Web堆栈通过执行以下操作来支持会话: >分配会话ID – 这是一个唯一的ID,通常将其设置为会话cookie,以便浏览器始终将带有任何HTTP请求的id发送给原始主机 因此,通过此过程,可以支持会话,因为每个入站HTTP请求都具有会话ID,当处理您的请求时,Web dyno可以访问该会话ID. 3.它适用于不同的Rails会话存储(ActionDispatch :: Session :: CookieStore,ActiveRecord :: SessionStore和ActionDispatch :: Session :: CacheStore) ActionDispatch ::会议::的CookieStore 的ActiveRecord :: SessionStore ActionDispatch ::会议:: CacheStore是的,但您需要缓存存储服务(例如MemCache插件). Cookie存储将加密的会话数据存储在缓存存储(memcache)中,缓存存储是所有Web dynos中的共享服务.然后将ID指定为cookie.因此,然后用于从缓存存储(memcache)加载会话数据. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |