0

谁能告诉我magento如何创建会话???我每天有 600 个用户的 magento,会话/coockie 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

然后设置 robots.txt 来限制机器人,或者设置防火墙规则来阻止恶意流量。

  1. Magento 允许(并鼓励)使用 Redis 进行会话和缓存管理。以下 local.xml 示例将 10.0.0.2 作为您的数据库服务器,将 10.0.0.3 作为您的 redis 服务器。

    <?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>
    

除此之外,您总是可以查看您的会话超时,看到它们都不到一周,似乎正在进行一些会话清理,但至于为什么有这么多会话,这可能是一个糟糕的问题设置负载均衡器(会在客户端看到会话/购物车问题),或者类似于 PHP 的超时问题。

于 2017-01-03T02:12:26.790 回答