proxy client web1 web2
1.构建memcached服务
]# yum -y install memcached
]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
]# systemctl start memcached
]# netstat -anptu | grep memcached
2.使用telnet访问memcached服务器
]# yum -y install telnet
]# telnet 192.168.4.5 11211
##提示:0表示不压缩,180为数据缓存时间,3为需要存储的数据字节数量。
set name 0 180 3 //定义变量,变量名称为name
plj //输入变量的值,值为plj
STORED
get name //获取变量的值
VALUE name 0 3 //输出结果
plj
END
add myname 0 180 10 //新建,myname不存在则添加,存在则报错
set myname 0 180 10 //添加或替换变量
replace myname 0 180 10 //替换,如果myname不存在则报错
get myname //读取变量
append myname 0 180 10 //向变量中追加数据
delete myname //删除变量
stats //查看状态
flush_all //清空所有
quit //退出登录
3.LNMP+memcached(web1 web2)
3.1 部署nginx(前面有)
3.2 部署mariadb
]# yum -y install mariadb mariadb-server mariadb-devel
]# systemctl start mariadb
]# mysqladmin -uroot -p password "123qqq...A"
3.3 部署PHP
]# yum -y install php php-mysql
]# yum -y install php-fpm-5.4.16-42.el7.x86_64.rpm
]# yum -y install php-pecl-memcache
]# systemctl start php-fpm
]# vim /usr/local/nginx/conf/nginx.conf
...
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
连接memcache数据库
]# vim /usr/local/nginx/html/test.php
<?php
$memcache=new Memcache; //创建memcache对象
$memcache->connect('192.168.2.5',11211) or die ('could not connect!!');
$memcache->set('key','test'); //定义变量
$get_values=$memcache->get('key'); //获取变量值
echo $get_values;
?>
检测:
4.PHP的本地Session信息
通过Nginx调度器负载后端两台Web服务器,实现以下目标:
部署Nginx为前台调度服务器
调度算法设置为轮询
后端为两台LNMP服务器
部署测试页面,查看PHP本地的Session信息
方案:Nginx前端调度器服务器(eth0:192.168.4.5,eth1:192.168.2.5)
Web1服务器(192.168.2.100) Web2服务器(192.168.2.200)
Linux客户机(192.168.4.10)
4.1 proxy搭建nginx(前面有)
web1
]# echo "192.168.2.100" > /usr/local/nginx/html/index.html
web2
]# echo "192.168.2.200" > /usr/local/nginx/html/index.html
4.2 7层调度
]# vim /usr/local/nginx/conf/nginx.conf
...
upstream webs {
server 192.168.2.100:80;
server 192.168.2.200:80;
}
server {
...
location / {
...
]# nginx -s reload
client检测:
192.168.2.100
192.168.2.200
192.168.2.100
192.168.2.200
4.3 部署测试页面(session)
web1 web2
]# cd php-memcached-demo
]# cp -a * /usr/local/nginx/html/
]# ls
50x.html images index.php README.md
home.php index.html login.php style.css
web1:(proxy轮询,client方便查看是哪台服务器)
]# vim index.php --> <body bgcolor="red">
]# vim home.php --> <body bgcolor="red">
web2:
]# vim index.php --> <body bgcolor="blue">
]# vim home.php --> <body bgcolor="blue">
真机goole chrome查看:
输入账户、密码(2次,以便调度器在两台web服务器都存储session信息)
登陆后:(F5刷新查看登陆页面轮询)
5. PHP实现session共享
沿用4,通过修改PHP-FPM配置文件,实现session会话共享.
配置PHP使用memcached服务器共享Session信息.
客户端访问两台不同的后端Web服务器时,Session 信息一致.
在练习三拓扑的基础上,Nginx服务器除了承担调度器外,还需要担任memcached数据库的角色,并在两台后端LNMP服务器上实现PHP的session会话共享。
5.1 部署memcache
]# yum -y install memcached
]# systemctl restart memcached
]# netstat -anptu | grep memcached
5.2 在后端LNMP服务器上部署Session共享
web1 web2
]# vim /etc/php-fpm.d/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
真机goole chrome查看:
如果出现错误,查看php日志:
]# ls /var/log/php-fpm/
error.log www-error.log
- 二十一、NFS服务
文件系统是基于存储设备的,比如硬盘,并且包含文件物理位置的维护.文件系统也可以说是虚拟数据或网络数据存储的方法,比如NFS.我是这样理解的:首先,什么是文件系统,这里我们已经明确了,就是组织的一种形式 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十一):服务网关(Zuul)
在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 技术背景 前面我们通过Ribbon或Feign实现了微服务之间的调用和负载均衡 ...
- Linux系统学习 二十一、SAMBA服务—相关文件、配置文件详解
3.相关文件 常用文件: /etc/samba/smb.conf #配置文件 /etc/samba/lmhosts #对应NetBIOS名与主机的IP的文件,一般Samba会自 ...
- 构建memcached服务
Q: 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的增.删.改.查操作:安装memcached软件,并启动服务使用telnet测试memcached服务对memc ...
- Linux实战教学笔记32:企业级Memcached服务应用实践
一, Memcached介绍 1.1 Memcached与常见同类软件对比 (1)Memcached是什么? Memcached是一个开源的,支持高性能,高并发的分布式内存缓存系统,由C语言编写,总共 ...
- 项目(九) 企业级Memcached服务应用实践
一, Memcached介绍 1.1 Memcached与常见同类软件对比 (1)Memcached是什么? Memcached是一个开源的,支持高性能,高并发的分布式内存缓存系统,由C语言编写, ...
- 基于Ubuntu部署 memcached 服务
系统要求:Ubuntu 16.04.1 LTS 64 位操作系统 安装并启动 memcached 服务 安装 memcached 使用apt-get安装 memcached sudo apt-get ...
- 三,memcached服务的两种访问方式
memcached有两种访问方式,分别是使用telnet访问和使用php访问. 1,使用telnet访问memcacehd 在命令提示行输入, (1)连接memcached指令:telnet 127. ...
- Session服务器之Memcached与Redis
安装Memcached[root@nginx ~]# yum -y install libevent memcached 指定用户大小等信息,工作环境中常指定大小一般为4到8G,此信息测试使用.[ro ...
随机推荐
- python正则表达式findall的使用
文章来源与:http://www.cnblogs.com/zjltt/p/6955965.html 正则表达式 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模 ...
- spring源码学习(一)--AOP初探
LZ以前一直觉得,学习spring源码,起码要把人家的代码整体上通读一遍,现在想想这是很愚蠢的,spring作为一个应用平台,不是那么好研究透彻的,而且也不太可能有人把spring的源码全部清楚的过上 ...
- [LOJ 6485]LJJ学二项式定理(单位根反演)
也许更好的阅读体验 \(\mathcal{Description}\) 原题链接 \(T\)组询问,每次给\(n,s,a_0,a_1,a_2,a_3\)求 \(\begin{aligned}\left ...
- idea 控制台 彩色打印日志
IDEA右上角:Edit Configurations,点击,找到VM options,填入-Dspring.output.ansi.enabled=ALWAYS. 重新启动应用,就会发现控制台日志变 ...
- Java定时任务工具详解之Timer篇
Java定时任务调度工具详解 什么是定时任务调度? ◆ 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务. 在Java中的定时调度工具? ◆ Timer ◆Quartz T ...
- core直接获取报异常数据
报异常直接跳转到/Home/Error [ResponseCache(Duration = , Location = ResponseCacheLocation.None, NoStore = tru ...
- [转]github 上传project代码
原文地址:https://www.cnblogs.com/f1194361820/p/4741558.html 1)将远程仓库纳入管理 其实就是添加远程仓库,在你已有的本地仓库目录下执行如下命令: $ ...
- Pandas-高级部分及其实验
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/11014893.html jupyter代码原文 ...
- Robo 3T SQL
查询指定日期,指定显示字段,排序,注释功能 db.getCollection('spuBasisInfo') .find({"createTime":{$gte:ISODate(& ...
- 你的系统需要SMB2或者更高版本,才能访问共享