Session和Cookies

Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)

基本概念

Session:存储在服务器端,保存用户名、登陆状态等信息。
Cookies:由服务器下发给客户端,保存在客户端的一个文件里,保存的内容主要包括:SessionID。

案例拓扑:Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
本地的Session,部署nginx调度器
Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
部署后端LNMP主机
Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
部署测试页面
Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
客户端访问
Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
验证Session
Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
----------------------------+++++++++++++++++++++++++++++++++++++++++++±----------------*-------------
部署memcached服务
Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)

Memcached概述

数据存储对比
性能
-----CPU缓存》内存》磁盘》数据库
价格
-----CPU缓存》内存》磁盘》数据库

memcached简介

memcached是高性能的分布式 缓存服务器
用了集中缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的响应速度。官方网站:http://memcached.org/
Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
安装memcached
[[email protected] ~]# yum -y install memcached
[[email protected] ~]# rpm -qa memcached
memcached-1.4.15-10.el7_3.1.x86_64

启动memcache

Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
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扩展
Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
编写PHP页面Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
----------------++++++++++++++++++++++++++++++±-----------------------

Session共享

Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)

实现Session共享

修改php配置文件
Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
重启服务
[[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

相关文章: