16_构建memcached服务、LNMP+memcached、PHP的本地Session信息、PHP实现session共享

proxy   10.10.11.10
client  10.10.11.11
web1    10.10.11.12
web2    10.10.11.13

proxy:
1.构建memcached服务
]# yum -y install memcached
]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
]# systemctl start memcached
]# systemctl enable memcached
]# netstat -anptu | grep memcached
 
2.使用telnet访问memcached服务器
]# yum -y install telnet
]# telnet 10.10.11.10 11211
##提示:0表示不压缩,180为数据缓存时间,3为需要存储的数据字节数量。
set name 0 180 3 # 定义变量,变量名称为name
aaa              # 输入变量的值,值为aaa               
STORED
get name         # 获取变量的值
VALUE name 0 3   # 输出结果
aaa
END
 
add myname 0 180 10      # 新建,myname不存在则添加,存在则报错
wwwwwwwwww
STORED

set myname 0 180 5       # 添加或替换变量
wwwww
STORED

replace myname 0 180 3   # 替换,如果myname不存在则报错
ttt
STORED

get myname               # 读取变量
ttt
END

append myname 0 180 5   # 向变量中追加数据
ooooo
STORED
get myname
VALUE myname 0 8
tttooooo

delete myname  # 删除变量
DELETED

stats          # 查看状态
flush_all      # 清空所有
OK

quit           # 退出登录                                  
 
3.LNMP+memcached(web1 web2)
3.1 部署nginx(前面有)
3.2 部署mariadb
]# yum -y install mariadb mariadb-server mariadb-devel
]# systemctl start  mariadb
]# systemctl enable mariadb
]# mysqladmin -uroot -p password "123456"
]# mysql -uroot -p123456

3.3 部署PHP
]# yum -y install php php-mysql php-fpm php-pecl-memcache
]# systemctl start php-fpm
]# systemctl enable php-fpm

nginx开启php
]# vim /etc/nginx/conf.d/default.conf
...
location / {
        root   /usr/share/nginx/html;
        index index.php  index.html index.htm;
    }
...
location ~ \.php$ {
        root           /usr/share/nginx/html;   #绝对路径
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
]# nginx -s reload

连接memcache数据库
]# vim /usr/share/nginx/html/test.php
<?php
$memcache=new Memcache;             # 创建memcache对象
$memcache->connect(‘10.10.11.10‘,11211) or die (‘could not connect!!‘);
$memcache->set(‘key‘,‘test‘);       # 定义变量
$get_values=$memcache->get(‘key‘);  # 获取变量值
echo $get_values;
?>

client检测:
]# firefox http://10.10.11.12/test.php
 
4.PHP的本地Session信息
通过Nginx调度器负载后端两台Web服务器
部署Nginx为前台调度服务器
调度算法设置为轮询
后端为两台LNMP服务器
部署测试页面,查看PHP本地的Session信息
 
4.1 proxy搭建nginx(前面有)
web1
]# echo "web1" > /usr/share/nginx/html/index.html
web2
]# echo "web2" > /usr/share/nginx/html/index.html
4.2 7层调度
]# vim /etc/nginx/nginx.conf
.. ..
http {
.. ..
#使用upstream定义后端服务器集群,集群名称任意(如webserver)
#使用server定义集群中的具体服务器和端口
upstream webserver {
       server 10.10.11.12:80;
       server 10.10.11.13:80;
        }
.. ..

]# vim /etc/nginx/conf.d/default.conf
server {
        listen     80;
        server_name  www.a.com;
#通过proxy_pass将用户的请求转发给webserver集群
        location / {
            proxy_pass http://webserver;
        }
...
]# nginx -s reload

client测试:(默认轮询)
]# curl http://10.10.11.10
web1
]# curl http://10.10.11.10
web2
]# curl http://10.10.11.10
web1
]# curl http://10.10.11.10
web2
 
4.3 部署测试页面(session)
web1 web2
]# cd php-memcached-demo
]# cp -a * /usr/share/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查看:
http://10.10.11.10/index.php(F5刷新查看登陆页面轮询)
输入账户、密码(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 start memcached
]# systemctl enable 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://10.10.11.10:11211"
//定义Session信息存储在公共的memcached服务器上,主机参数中为memcache(没有d)
//通过path参数定义公共的memcached服务器在哪(服务器的IP和端口)
]# systemctl restart php-fpm
 
真机goole chrome查看:
(F5刷新查看登陆页面轮询)
http://10.10.11.10/index.php
如果出现错误,查看php日志:
]# ls /var/log/php-fpm/
error.log  www-error.log

原文地址:https://www.cnblogs.com/luwei0915/p/12158748.html

时间: 2024-08-04 09:50:59

16_构建memcached服务、LNMP+memcached、PHP的本地Session信息、PHP实现session共享的相关文章

构建memcached服务,Tomcat实现session共享

构建memcached服务 1.1 问题 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的添.删.改.查操作: 安装memcached软件,并启动服务 使用telnet测试memcached服务 对memcached进行增.删.改.查等操作 1.2 方案 使用1台RHEL7虚拟机作为memcached服务器(192.168.4.5). 在RHEL7系统光盘中包含有memcached,因此需要提前配置yum源,即可直接使用yum安装,客户端测试时需要提前安装te

构建memcached服务

Q: 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的增.删.改.查操作:安装memcached软件,并启动服务使用telnet测试memcached服务对memcached进行增.删.改.查等操作 使用1台RHEL7虚拟机作为memcached服务器在RHEL7系统光盘中包含有memcached,因此需要提前配置yum源,即可直接使用yum安装,客户端测试时需要提前安装telnet远程工具.验证时需要客户端主机安装telnet,远程memcached来验证服

LNMP+memcached平台的搭建

实验01:LNMP平台的搭建 实验目标:nginx可以解析php 实验步骤: 一:环境准备 1:准备搭建环境,创建用户 [[email protected] ~]# useradd www [[email protected] ~]# useradd mysql 2:将原有的http网站服务停止并删除原有mysql的主配置文件,停掉mysql服务 3:解压软件包 [[email protected] ~]# unzip lnmp+memcached.zip lnmp+memcached     

企业级Memcached服务应用实践。

企业级Memcached服务应用实践 Memcached服务 一, Memcached介绍 1.1 Memcached与常见同类软件对比 (1)Memcached是什么? Memcached是一个开源的,支持高性能,高并发的分布式内存缓存系统,由C语言编写,总共2000多行代码.从软件名称上看,前3个字符"Mem"就是内存的意思,而接下来的后面5个字符"cache"就是缓存的意思,最后一个字符d,是daemon的意思,代表是服务器端守护进程模式服务. Memcach

memcached原理 部署memcached 、 Session共享

案例1:构建memcached服务案例2:LNMP+memcached案例3:PHP的本地Session信息案例4:PHP实现session共享1 案例1:构建memcached服务1.1 问题 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的增.删.改.查操作:安装memcached软件,并启动服务使用telnet测试memcached服务对memcached进行增.删.改.查等操作1.2 方案 使用1台RHEL7虚拟机作为memcached服务器(192.

(apache+tomcat集群+memcached番外篇)单台tomcat的session信息的2种持久化方式

为什么要实现搭建tomcat集群环境呢?主要因为单个tomcat无论从吞吐量和并发数上,会达到一定的极限.如果访问量超过单个tomcat的承受能力的话,tomcat一般要么拒绝提供服务,要么直接宕掉.所以,必须要依靠tomcat集群技术.举个最简单的例子,拿"送快件"比喻,如果一个人,5分钟送一件,一小时之内,送10个,一个人完全能胜任这项工作.假设现在到了双十一,要求1小时,送100个, 那怎么办?只能安排更多的人加入"送快件"这项工作中来.这其实和集群一个道理.

高级运维(五):构建memcached服务、LNMP+memcached、使用Tomcat设置Session、Tomcat实现session共享

一.构建memcached服务 目标: 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的添.删.改.查操作: 1> 安装memcached软件,并启动服务d 2> 使用telnet测试memcached服务 3> 对memcached进行增.删.改.查等操作 方案: 使用1台RHEL7虚拟机作为memcached服务器(192.168.4.5). 在RHEL7系统光盘中包含有memcached,因此需要提前配置yum源,即可直接使用yum安装,客户端测

LNMP 添加 memcached服务

LNMP 添加 memcached服务 由于memcached具有更多的功能和服务,已经不推荐使用memcache了.(缺少个字母d) 1. 首先安装memcached服务端. 这里使用yum源安装 # yum -y install memcached 启动服务(命令默认在/usr/bin/memcached.主要的启动参数-d守护进程,-u使用用户,-m分配内存,-l机器ip,-p端口默认11211 # /usr/bin/memcached -d -uroot -p 11211 -m 200

LNMP +memcached

proxe代理服务器: 安装memcached服务 #yum  -y install gcc #tar -xf libevent-2.0.21-stable.tar.gz (memcached服务库文件) #cd libevent-2.0.21-stable #./configure #make && make install 可以直接给库文件做链接也可在库配置文件中写进去,做其一就行. 1)  #ln -s /usr/local/lib/libevent/* /usr/lib/ #ldc