在我的系统中,有许多web servers
共享一个cache(memcache) server
。
目前,它将清除每个新部署的memcache中的所有数据。
运行rake memcached:flush
更重要的是,我可以在缓存服务器中看到user session
,
但每次当我关闭iPhone上的浏览器时,我都需要一次又一次地重新登录(我必须弄错)。
我在AWS ELB
和auto scaling
我如何保持用户会话在ELB背后的每个服务器
要让用户每次回来都处于记录状态。
| 8 | 2016-03-01 10:07:59 +0000 | 291 | _session_id:08f1d7e8e82055367c44372d431b7f23 |
| 8 | 2016-03-01 10:07:22 +0000 | 291 | _session_id:3553ad00c578b175d789f02dc696dd95 |
| 8 | 2016-03-01 10:04:22 +0000 | 291 | _session_id:5cc2302455981a8a5d3cea98deb80acb |
Rails.application.config.session_store :cookie_store, key: '_sampleA_session'
Rails.application.config.session_store ActionDispatch::Session::CacheStore, :expire_after => 6.month
- cache("common_header", skip_digest: true) do
- cache("footer", skip_digest: true) do
...
require 'socket'
namespace :memcached do
desc 'Flushes whole memcached local instance'
task :flush do
server = ENV['MEMCACHE_DB']
port = 11211
command = "flush_all\r\n"
socket = TCPSocket.new(server, port)
socket.write(command)
result = socket.recv(2)
if result != 'OK'
STDERR.puts "Error flushing memcached: #{result}"
end
socket.close
end
end
config.action_controller.perform_caching = true
config.cache_store = :dalli_store, ENV['MEMCACHE_DB'], { :pool_size => 10 ,compress: true }