Session和Cookies
基本概念
Session:存储在服务器端,保存用户名、登陆状态等信息。
Cookies:由服务器下发给客户端,保存在客户端的一个文件里,保存的内容主要包括:SessionID。
案例拓扑:
本地的Session,部署nginx调度器
部署后端LNMP主机
部署测试页面
客户端访问
验证Session
----------------------------+++++++++++++++++++++++++++++++++++++++++++±----------------*-------------
部署memcached服务
Memcached概述
数据存储对比
性能
-----CPU缓存》内存》磁盘》数据库
价格
-----CPU缓存》内存》磁盘》数据库
memcached简介
memcached是高性能的分布式 缓存服务器
用了集中缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的响应速度。官方网站:http://memcached.org/
安装memcached
[[email protected] ~]# yum -y install memcached
[[email protected] ~]# rpm -qa memcached
memcached-1.4.15-10.el7_3.1.x86_64
启动memcache
Telnet测试memcache
参考memcache常用指令
[[email protected] bin]# telnet 172.0.0.1 11211
Trying 172.0.0.1 …
…
set name 0 1803 //定义变量
plj //输入变量的值
STORED
get name //获取变量的值
VALUE name 0 3 //输出结果
plj
END
quit //退出登录
—memcache 常用指令
add name 0 180 10 //变量不存在则添加
set name 0 180 10 //添加变量
replace name 0 180 10 //替换变量
get name //读取变量
delete name //删除变量
flush_all //清空所有
-----------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++±----------------------------------------------------------
PHP+Memcached介绍
部署LNMP
使用PHP页面,测试对memcached的读写操作
具体操作参考Nginx+FastCGI
https://blog.csdn.net/weixin_45533230/article/details/104286887
–php无法直接操作memcached
–需要安装memcached扩展
安装php的memcached扩展
编写PHP页面
----------------++++++++++++++++++++++++++++++±-----------------------
Session共享
实现Session共享
修改php配置文件
重启服务
[[email protected] ~]# systemctl restart php-fpm
测试Session共享
浏览器访问调度器,刷新页面后,登录账户会被记录在memcached服务器
刷新页面,调度器切换服务器后,账户信息还在
两台后端服务器使用的是一个账户
[[email protected] ~]# frefox http://192.168.4.5/
-------------------++++++++++++++++++++++++++++++++++++++±------------------------------------
PHP连接memcached
故障错误信息
[[email protected] ~]# frefox http://192.168.4.5/
编写PHP代码,连接测试memcached数据库服务器,返回空白页或者直接出现下载窗口
原因:
分析故障
-是否正确配置nginx
-是否正确配置php
-是否正确配置memcached
分析故障原因
nginx没有配置fastcgi_pass,将返回下载窗口
php-fpm没有启动,或者nginx没有正确设置的FPM端口
PHP没有安装memcached扩展,或没有在配置文件中加载扩展
Memcached服务没有启动,或者没有监听正确的IP和端口
无法共享session
问题现象
故障错误信息
[[email protected] ~]# frefox http://192.168.4.5/
访问调度器后,刷新页面session(账户信息)依然没有变化
分析故障
PHP是否添加了memcached扩展库
php-fpm是否修改了www.conf配置
分析故障原因
未安装php-pecl-memcached的话,无法连接memcached
没有修改配置文件的话,默认php会在本地存储session