多機部署rails下的session處理實踐

2021-08-22 06:52:23 字數 873 閱讀 4129

背景: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...