[PHP-users 321] Re: PHPLIB、分散環境とsession id について

Naoaki Katsumata php-users@php.gr.jp
Thu, 28 Jun 2001 12:06:12 +0900


勝又です。

>uniqid は時間を元に生成されるので、マシンが違うばかなり低い確率だと
>思いますが、同じになる可能性はあると思います。
>uniqid("server1");
>と言う風にすると
>server1.....
>といった具合に生成された ID に文字列がつくので、ここをサーバごとに
>替えておけばまず大丈夫だと思います。
>> > そこで、WEBサーバをA、Bとしたとき
>> > あるユーザがA でsession idを貰って、そのサイトを利用してるうちに B に
>> > 切り替わったとき、問題は何もないのでしょうか?
>> 
>> セッション情報をローカルの /tmp とかに格納しているのなら問題あり、
>> バックエンドの DB に格納しているのなら多分 OK じゃないかと思います。
>
>そうですね。セッション情報を 1つの DB にしておけば大丈夫です。

以前、他の言語で会員制のWebサイトを構築したことがあるのですが、
その時は、セッション IDという概念を使いませんでした。
構成としてはWebサーバ2台、oracle 1台でした。
認証は、会員に会員CDを振っておいて、ログイン時に会員CDと会員CDを暗号化したもの
のセットをクッキーに保存させておき、ページごとにその会員CDと会員CDを暗号化したもの
をDBを頼らないでチェックしていました。(DB負荷軽減のため)
暗号化の仕方は2台のサーバで同じ方法でした。

PHPLIBがsession idを振って、ログインしたあとどのようにログインした会員の
認証をチェックしているかまだしっかりと把握していないのです。


>ただ、ページを見るたびに update が実行されるので、PostgreSQL だと
>頻繁に vacuum しないといけませんが。

毎回updateですか?
サーバが切り替わらなくてもupdateするのですか?
DBがたいへんですね。