複数台サーバでセッションを共有する
の編集
https://yassu.jp/pukiwiki/index.php?%CA%A3%BF%F4%C2%E6%A5%B5%A1%BC%A5%D0%A4%C7%A5%BB%A5%C3%A5%B7%A5%E7%A5%F3%A4%F2%B6%A6%CD%AD%A4%B9%A4%EB
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
[[PHPめも]] PHPのセッションはファイルに書き出すことが一般的だと思うが、サーバが複数台に分かれた場合に共有できない。 解決方法としては以下のうちどれかといったところか。 -データベースに保存する -NFSで共有する -memcachedで共有する memcachedの利用事例もあるようなので、この解決策が良さげ。~ memcachedとmemcacheがあるがmemcachedの方が早いみたい。 *memcachedのインストール [#qad2c765] # yum install memcached libmemcached php-pecl-memcached バージョンを確認 $ memcached -h | head -n1 memcached 1.4.15 設定変更は以下のファイルを編集~ DDoS攻撃のほか、キャッシュデータを第三者に参照され、情報漏洩が発生する可能性があるために接続制限をかけます。 # vi /etc/sysconfig/memcached OPTIONS="-l 127.0.0.1 -U 0" memcachedを起動後にrootユーザーにて以下コマンドを実行します。 curl memcached-udp-check.dns.ne.jp コマンドを実行した結果、SAFEと表示された場合は設定完了です。~ VERSIONから始まる行が表示された場合、memcachedが外部からUDPでアクセス可能となっており、DDoS攻撃に悪用される恐れがあります。 自動起動の設定 # systemctl enable memcached 起動 # systemctl start memcached ステータス確認 # systemctl status memcached .htaccess php_value session.save_path "localhost:11211" php_value session.save_handler memcached *動作確認 [#w274bd14] telnetでおしゃべりしてみます。 $ telnet localhost 11211 set hoge 0 100 6 hogege STORED get hoge VALUE hoge 0 6 hogege END quit Connection closed by foreign host. ツールでキャッシュされているか確認。 $ memcached-tool localhost dump | strings 参考サイト -[[複数サーバでセッションを共有する冴えたやりかた:https://www.slideshare.net/j_nakada/ss-7506214]] -[[memcachedを利用して、複数サーバのセッションを共有化:http://navi-local.com/article/memcached%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81%E8%A4%87%E6%95%B0%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%85%B1%E6%9C%89%E5%8C%96/]] -[[セッションをNFSで共有するとApacheがおかしくなるのでmemcacheでの共有にした:https://blog.supersonico.info/?p=208]] -[[Apache(×PHP)経由でセッションをMemcachedで管理しようとした際に、ファイルに書きだされてハマった点:https://qiita.com/banrui/items/9e860d0c8782a70a3d98]]
タイムスタンプを変更しない
[[PHPめも]] PHPのセッションはファイルに書き出すことが一般的だと思うが、サーバが複数台に分かれた場合に共有できない。 解決方法としては以下のうちどれかといったところか。 -データベースに保存する -NFSで共有する -memcachedで共有する memcachedの利用事例もあるようなので、この解決策が良さげ。~ memcachedとmemcacheがあるがmemcachedの方が早いみたい。 *memcachedのインストール [#qad2c765] # yum install memcached libmemcached php-pecl-memcached バージョンを確認 $ memcached -h | head -n1 memcached 1.4.15 設定変更は以下のファイルを編集~ DDoS攻撃のほか、キャッシュデータを第三者に参照され、情報漏洩が発生する可能性があるために接続制限をかけます。 # vi /etc/sysconfig/memcached OPTIONS="-l 127.0.0.1 -U 0" memcachedを起動後にrootユーザーにて以下コマンドを実行します。 curl memcached-udp-check.dns.ne.jp コマンドを実行した結果、SAFEと表示された場合は設定完了です。~ VERSIONから始まる行が表示された場合、memcachedが外部からUDPでアクセス可能となっており、DDoS攻撃に悪用される恐れがあります。 自動起動の設定 # systemctl enable memcached 起動 # systemctl start memcached ステータス確認 # systemctl status memcached .htaccess php_value session.save_path "localhost:11211" php_value session.save_handler memcached *動作確認 [#w274bd14] telnetでおしゃべりしてみます。 $ telnet localhost 11211 set hoge 0 100 6 hogege STORED get hoge VALUE hoge 0 6 hogege END quit Connection closed by foreign host. ツールでキャッシュされているか確認。 $ memcached-tool localhost dump | strings 参考サイト -[[複数サーバでセッションを共有する冴えたやりかた:https://www.slideshare.net/j_nakada/ss-7506214]] -[[memcachedを利用して、複数サーバのセッションを共有化:http://navi-local.com/article/memcached%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81%E8%A4%87%E6%95%B0%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%85%B1%E6%9C%89%E5%8C%96/]] -[[セッションをNFSで共有するとApacheがおかしくなるのでmemcacheでの共有にした:https://blog.supersonico.info/?p=208]] -[[Apache(×PHP)経由でセッションをMemcachedで管理しようとした際に、ファイルに書きだされてハマった点:https://qiita.com/banrui/items/9e860d0c8782a70a3d98]]
テキスト整形のルールを表示する