背景:rails部署在多個機器上,如何處理session?
如果單機部署那麼不用理會這個問題,使用系統預設的session機制既可,如果多機情況下就不一樣,處理不當很有可能出現, 使用者在一台機器已經登陸,結果下次訪問另一台機器,可能就會被迫再次登陸(因為這台機器並沒有session資料)。使用者只管使用,並不關心你的應用如何部署,所以出現這種情況會讓使用者很困惑,甚至會造成比較嚴重的後果。
我嘗試採用了資料庫儲存session的方案。即多個rails共享乙個資料庫中的session表中的紀錄。
無論使用者訪問哪台rails機器,rails都會取出同一行session資料
具體步驟如下:
step 1)修改 environment.rb
actioncontroller::cgirequest::default_session_options[:database_manager]=cgi::session::activerecordstore
step 2)在資料庫加上如下一張表
create table `sessions` (
`id` int(11) not null auto_increment,
`sessid` varchar(255) default null,
`data` text,
`updated_at` datetime default null,
primary key (`id`),
key `session_index` (`sessid`)
) ;關於session的過期清除
寫乙個指令碼定時刪除過期的session紀錄,
sql語句如下:
delete from sessions where now()-update_at>3600
多機部署rails下的session處理實踐
背景 rails部署在多個機器上,如何處理session?如果單機部署那麼不用理會這個問題,使用系統預設的session機制既可,如果多機情況下就不一樣,處理不當很有可能出現,使用者在一台機器已經登陸,結果下次訪問另一台機器,可能就會被迫再次登陸 因為這台機器並沒有session資料 使用者只管使用...
多機部署ros配置
多機部署ros 主機和從機要在同乙個區域網內 1.主機新增在hosts中新增所有節點的ip和主機名 主機配置 bash sudo gedit etc hosts ip 主機名 1.1sudo gedit bashrc export ros hostname 本機ip export ros maste...
apache resin的多機部署方案實現方法
前言 前段時間,對公司前台多機分布方案的做了一些探索,總結了一些東西,貼出來分享。類似內容網上比較多,但是都不夠詳細,我第一次弄時費力不少,希望後來人可以更方便一些。一.編譯安裝apache unix版本取httpd 2.2.6.tar.gz 2 解開包 3 編譯安裝 進入解壓後的目錄httpd 2...