0

magentoがセッションを作成する方法を教えてもらえますか??? 1 日あたり 600 人のユーザーがいる magento を使用しています。セッション/クッキーの TTL は 1 週間です。このユーザーの 60% はカムバックの日常ユーザーです。セッション ディレクトリには 285580 個のセッション ファイルがあります。すべてのファイルの日付は 1 週間以内です。

では、600 人のユーザーのセッション ファイルが大量にあるのはどこからでしょうか?

4

2 に答える 2

0

理論上、動作の悪いボットがサイトをクロールしており(つまり、永続的なCookieがない場合)、Magentoはすべてのページビューに対して新しいセッションを作成しています。

apacheログをセッションファイルと比較して確認し、/robots.txtファイルで問題のあるボットを禁止します。

于 2012-04-26T19:55:59.343 に答える
0

セッションは PHP セッションであり、特に Magento ではありません。

ここにはいくつかのオプションがあります。

  1. Cloudflare ( https://www.cloudflare.com/ )などのサーバーにある種のプロキシを使用して、これには DDoS 保護があるため、問題が悪意のある場合、これはそれに対する何らかの保護を提供します。

  2. Apache ログ ファイルを調べて、Linux のディストリビューションに応じて、/var/log/httpd/access_log のような場所にあるトラフィックのソースを特定します。

このようなものを使用して最後の 20 行を取得しますが、見つからない場合は grep が必要です。

    $ tail /var/log/httpd/access_log -n20

次に、bot を制限する robots.txt を設定するか、悪意のあるトラフィックをブロックするファイアウォール ルールを設定します。

  1. 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 でのタイムアウトの問題のようなものです。

于 2017-01-03T02:12:26.790 に答える