session文件过多怎么办

 我来答
xiangjuan314
2016-08-03 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2915万
展开全部
在8.7.1和9.0.1中,为了防止黑客攻击,在登录、发帖等部分都使用了token进行身份校验,而其不再使用cookie存储token信息,而是使用了session,因此,有些站长会发现服务器上生成了一些以“sess_”开的文件,这些文件是php生成的session文件,由php生成并定期清理(默认24分钟)。

有些站长的站访问量比较大,担心会影响服务器性能,针对这种情况,有三种方法可以选择:

1、使用内存来保存session,比如放入memecached中
1)安装memecached
2)修改php.ini的配置文件
session.save_handler = files
修改为

session.save_hander = memcache;
session.save_path = "tcp://host:端口号"; (例如:session.save_path = "tcp://127.0.0.1:11211";,其中11211是memechached的默认端口号)

2、使用session的分级目录
修改php.ini的配置文件
session.save_path = "/tmp"
修改为
session.save_path = "2;/tmp/session"

这表示使用/tmp/session目录下二级散列目录存储session
然后呢,php不会自动建立散列目录,需要手动创建
也就是说你需要手动创建如下文件夹,并给权限
/tmp/session/0/0/
/tmp/session/0/1/
/tmp/session/0/3/
tmp/session/0/4/
当然,你也可以用这段代码来快速生成目录
<?php
$string = '0123456789abcdefghijklmnopqrstuvwxyz';
$length = strlen($string);
for($i = 0; $i < $length; $i++) {
  for($j = 0; $j < $length; $j++) {
   func_mkDir('/tmp/session/'.$string[$i].'/'.$string[$j]);
  }
}
?>

3、用自动清理session
/etc/cron.hourly/下新建了一个文件session
内容如下:
find /tmp/session -amin +180 -exec rm -rf {} \;
表示1小时清理一次,清理大于3个小时的session文件。
就烦条0o
2018-07-05 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
用的越少越好
SESSION 要吃服务器内存
一个SESSION 一般吃10KB的内存
如果过的话 你的服务器就受不了了
IIS 连接数是以用户独立IP和访问主机计算的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式