谁能告诉我magento如何创建会话???我每天有 600 个用户的 magento,会话/coockie TTL 为 1 周。其中 60% 的用户是复出的日常用户。会话目录有 285580 个会话文件。所有文件的日期不超过 1 周。
那么我们从哪里有这么多 600 个用户的会话文件呢?
谁能告诉我magento如何创建会话???我每天有 600 个用户的 magento,会话/coockie 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
然后设置 robots.txt 来限制机器人,或者设置防火墙规则来阻止恶意流量。
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 的超时问题。