magentoがセッションを作成する方法を教えてもらえますか??? 1 日あたり 600 人のユーザーがいる magento を使用しています。セッション/クッキーの TTL は 1 週間です。このユーザーの 60% はカムバックの日常ユーザーです。セッション ディレクトリには 285580 個のセッション ファイルがあります。すべてのファイルの日付は 1 週間以内です。
では、600 人のユーザーのセッション ファイルが大量にあるのはどこからでしょうか?
magentoがセッションを作成する方法を教えてもらえますか??? 1 日あたり 600 人のユーザーがいる magento を使用しています。セッション/クッキーの TTL は 1 週間です。このユーザーの 60% はカムバックの日常ユーザーです。セッション ディレクトリには 285580 個のセッション ファイルがあります。すべてのファイルの日付は 1 週間以内です。
では、600 人のユーザーのセッション ファイルが大量にあるのはどこからでしょうか?
理論上、動作の悪いボットがサイトをクロールしており(つまり、永続的なCookieがない場合)、Magentoはすべてのページビューに対して新しいセッションを作成しています。
apacheログをセッションファイルと比較して確認し、/robots.txtファイルで問題のあるボットを禁止します。
セッションは PHP セッションであり、特に Magento ではありません。
ここにはいくつかのオプションがあります。
Cloudflare ( https://www.cloudflare.com/ )などのサーバーにある種のプロキシを使用して、これには DDoS 保護があるため、問題が悪意のある場合、これはそれに対する何らかの保護を提供します。
Apache ログ ファイルを調べて、Linux のディストリビューションに応じて、/var/log/httpd/access_log のような場所にあるトラフィックのソースを特定します。
このようなものを使用して最後の 20 行を取得しますが、見つからない場合は grep が必要です。
$ tail /var/log/httpd/access_log -n20
次に、bot を制限する robots.txt を設定するか、悪意のあるトラフィックをブロックするファイアウォール ルールを設定します。
Magento では、セッションとキャッシュの管理に Redis の使用が許可 (および推奨) されています。次の local.xml の例では、db サーバーとして 10.0.0.2 があり、redis サーバーとして 10.0.0.3 があります。
<?xml version="1.0"?>
<!--
/**
* Magento
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE_AFL.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@magentocommerce.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade Magento to newer
* versions in the future. If you wish to customize Magento for your
* needs please refer to http://www.magentocommerce.com for more information.
*
* @category Mage
* @package Mage_Core
* @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*/
-->
<config>
<global>
<install>
<date><![CDATA[Wed, 18 Jan 2012 06:19:25 +0000]]></date>
</install>
<crypt>
<key><![CDATA[{some crypt key}]]></key>
</crypt>
<disable_local_modules>false</disable_local_modules>
<resources>
<db>
<table_prefix><![CDATA[]]></table_prefix>
</db>
<default_setup>
<connection>
<host><![CDATA[10.0.0.2]]></host>
<username><![CDATA[dbusername]]></username>
<password><![CDATA[dbpassword]]></password>
<dbname><![CDATA[dbschema]]></dbname>
<initStatements><![CDATA[SET NAMES utf8]]></initStatements>
<model><![CDATA[mysql4]]></model>
<type><![CDATA[pdo_mysql]]></type>
<pdoType><![CDATA[]]></pdoType>
<active>1</active>
</connection>
</default_setup>
</resources>
<session_save><![CDATA[db]]></session_save>
<redis_session>
<host>10.0.0.3</host>
<port>6379</port>
<password>redispassword</password>
<timeout>2.5</timeout>
<persistent></persistent>
<db>2</db>
<compression_threshold>2048</compression_threshold>
<compression_lib>gzip</compression_lib>
<log_level>1</log_level>
<max_concurrency>6</max_concurrency>
<break_after_frontend>5</break_after_frontend>
<break_after_adminhtml>30</break_after_adminhtml>
<bot_lifetime>7200</bot_lifetime>
</redis_session>
<cache>
<backend>Mage_Cache_Backend_Redis</backend>
<backend_options>
<server>10.0.0.3</server>
<port>6379</port>
<persistent></persistent>
<database>1</database>
<password>redispassword</password>
<force_standalone>0</force_standalone>
<connect_retries>3</connect_retries>
<read_timeout>10</read_timeout>
<automatic_cleaning_factor>0</automatic_cleaning_factor>
<compress_data>1</compress_data>
<compress_tags>1</compress_tags>
<compress_threshold>20480</compress_threshold>
<compression_lib>gzip</compression_lib>
<use_lua>0</use_lua>
</backend_options>
</cache>
</global>
<admin>
<routers>
<adminhtml>
<args>
<frontName><![CDATA[admin]]></frontName>
</args>
</adminhtml>
</routers>
</admin>
</config>
それ以外は、セッションのタイムアウトをいつでも確認できます。それらはすべて 1 週間未満であることがわかります。セッションのクリーニングが行われているようですが、セッションが非常に多い理由については、ロードバランサーのセットアップ (顧客側でセッション/カートの問題が発生します)、または PHP でのタイムアウトの問題のようなものです。