背景:http协议无状态协议,网页关闭,浏览器和服务端的连接就会断开,下次打开又要重新建立连接,服务无法记录你的访问信息
cookie
cookie:记录的访问信息存储在浏览器中,下次打开网页和服务器建立连接时,浏览器把cookie中记录的信息sessionID发送给服务器,服务器就可以识别你的身份.如记住密码等功能
session
session:会话控制,服务器会向浏览器发送一个每个用户特有的会话编号sessionID,让他进入cookie,服务器同时把sessionID和对应的用户信息用户操作纪录在服务器,这些纪录就是session
memcache
访问网站会被分配到不同的网站服务器上,如何实现不同网站服务器session共享,需要把session存储到集群服务器上,实现session共享.集群服务器可以利用memcache缓存数据库存储session
yum -y install memcached //装包
vim /etc/sysconfig/memcached //查看memcached相关配置信息
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
//配置文件,可以不用修改
systemctl start memcahed //启动服务
yum -y install telnet //使用telnet访问memcache服务器
telnet 192.168.4.5 11211 //本机ip和端口
>0表示不压缩,180为数据缓存时间,10为需要存储的数据字节数量。
add name 0 180 10 //变量name不存在则添加
**** //输入变量值
set name 0 180 10 //添加或替换变量
******
replace name 0 180 10 //替换
get name //读取变量
append name 0 180 10 //向变量中追加数据
delete name //删除变量
flush_all //清空所有
******************************************************
web服务器实现php session共享
yum -y install php-pecl-memcache //连接memcached数据库的扩展包
vim /etc/php-fpm/www.conf //修改配置文件中的两个参数
//文件的最后2行
修改前效果如下:
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
//原始文件,默认定义Sessoin会话信息本地计算机(默认在/var/lib/php/session)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
修改后效果如下:
php_value[session.save_handler] = memcache
php_value[session.save_path] = "tcp://192.168.2.5:11211"
//定义Session信息存储在公共的memcached服务器上,主机参数中为memcache(没有d)
//通过path参数定义公共的memcached服务器在哪(服务器的IP和端口)
systemctl restart php-fpm //重启服务