装包-------配置----起服务---验证
装包:
[root@proxy ~]# yum -y install memcached //安装软件包memcached
[root@proxy ~]# yum -y install telnet //安装telnet,用来验证memcached
配置:
[root@proxy ~]# vim /usr/lib/systemd/system/memcached.service //memcached配置文件(查看即可,不需要修改)
ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS
[root@proxy ~]# vim /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
起服务:
[root@proxy ~]# systemctl start memcached
[root@proxy ~]# netstat -anptu | grep memcached
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 2839/memcached
tcp 0 0 :::11211 :::* LISTEN 2839/memcached
udp 0 0 0.0.0.0:11211 0.0.0.0:* 2839/memcached
udp 0 0 :::11211 :::* 2839/memcached
[root@proxy ~]# setenforce 0
[root@proxy ~]# firewall-cmd --set-default-zone=trusted
验证:
[root@proxy ~]# telnet 192.168.4.5 11211
Trying 192.168.4.5...
……
set name 0 180 3 //定义变量,名称为name;0表示不压缩,180数据缓存时间,3需要存储的数据字节数量。
plj //输入变量的值,值为plj 字符个数必须与上面定义的存储的数据字节数量3一致
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 //退出登录
LNMP+memcached
部署LNMP环境
装包:
[root@proxy ~]# yum -y install gcc openssl-devel pcre-devel zlib-devel //nginx
[root@proxy ~]# tar -xf nginx-1.12.2.tar.gz
[root@proxy ~]# cd nginx-1.12.2
[root@proxy nginx-1.12.2]# ./configure --with-http_ssl_module
[root@proxy nginx-1.12.2]# make && make install
[root@proxy ~]# yum -y install mariadb mariadb-server mariadb-devel //数据库
[root@proxy ~]# yum -y install php php-mysql //php
[root@proxy ~]# yum -y install php-fpm-5.4.16-42.el7.x86_64.rpm
配置:
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf;
}
起服务:
[root@proxy ~]# /usr/local/nginx/sbin/nginx
[root@proxy ~]# systemctl start mariadb
[root@proxy ~]# systemctl start php-fpm
权限:
[root@proxy ~]# setenforce 0
[root@proxy ~]# firewall-cmd --set-default-zone=trusted
创建PHP页面:
[root@proxy ~]# vim /usr/local/nginx/html/test.php //创建测试页面
<?php
$memcache=new Memcache; //创建memcache对象
$memcache->connect('localhost',11211) or die ('could not connect!!');
$memcache->set('key','test'); //定义变量
$get_values=$memcache->get('key'); //获取变量值
echo $get_values;
?>
测试:
[root@proxy ~]# yum -y install php-pecl-memcache //为PHP添加memcache扩展
[root@proxy ~]# systemctl restart php-fpm
4)客户端再次测试(结果会成功显示数据结果)
PHP的本地Session信息
firefox(服务器返回cookie)<-------------------->服务器(firefox用户信息session)
部署后端LNMP服务器(web1、web2):
[root@web1 ~]# yum -y install gcc openssl-devel pcre-devel zlib-devel //nginx
[root@web1 ~]# tar -xf nginx-1.12.2.tar.gz
[root@web1 ~]# cd nginx-1.12.2
[root@web1 nginx-1.12.2]# ./configure --with-http_ssl_module
[root@web1 nginx-1.12.2]# make && make install
[root@web1 ~]# yum -y install mariadb mariadb-server mariadb-devel //数据库
[root@web1 ~]# yum -y install php php-mysql //php
[root@web1 ~]# yum -y install php-fpm-5.4.16-42.el7.x86_64.rpm
[root@web1 ~]# vim /usr/local/nginx/conf/nginx.conf //修改Nginx配置文件(修改默认首页与动静分离)
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf;
}
[root@web1 ~]# /usr/local/nginx/sbin/nginx //起服务
[root@web1 ~]# systemctl start mariadb
[root@web1 ~]# systemctl start php-fpm
[root@web1 ~]# setenforce 0 //权限
[root@web1 ~]# firewall-cmd --set-default-zone=trusted
部署前端Nginx调度服务器(proxy)
[root@proxy ~]# yum -y install pcre-devel openssl-devel //nginx
[root@proxy ~]# tar -xf nginx-1.12.2.tar.gz
[root@proxy ~]# cd nginx-1.12.2
[root@proxy nginx-1.12.2]# ./configure
[root@proxy nginx-1.12.2]# make && make install
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf //修改Nginx配置文件
.. ..
upstream webs { //定义后端服务器地址池,默认调度策略为轮询
server 192.168.2.100:80;
server 192.168.2.200:80;
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.php index.html index.htm;
}
}
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload //起服务
[root@proxy ~]# setenforce 0 //权限
[root@proxy ~]# firewall-cmd --set-default-zone=trusted
部署测试页面(web1、web2)
[root@web1 ~]# cd lnmp_soft/php_scripts/
[root@web1 php_scripts]# tar -xf php-memcached-demo.tar.gz
[root@web1 php_scripts]# cd php-memcached-demo
[root@web1 php-memcached-demo]# cp -a * /usr/local/nginx/html/ //属性不变拷贝
[root@web1 ~]# cd /var/lib/php/session/ //查看服务器本地的Session信息
[root@web1 ~]# ls
sess_ahilcq9bguot0vqsjtd84k7244 //注意这里的ID是随机的
[root@web1 ~]# cat sess_ahilcq9bguot0vqsjtd84k7244
注意:可用修改index.php和home.php两个文件的内容,添加页面颜色属性,以区别后端两台不同的服务器:<body bgcolor=blue>。
测试(不同后端服务器Session不一致)
//填写注册信息后,刷新,还需要再次注册,说明两台计算机使用的是本地Session
//第二台主机并不知道你再第一台主机已经登录,第一台主机的登录信息也没有传递给第二台主机
PHP实现session共享
构建memcached服务(proxy)
[root@proxy ~]# yum -y install memcached
[root@proxy ~]# systemctl restart memcached
[root@proxy ~]# setenforce 0
[root@proxy ~]# firewall-cmd --set-default-zone=trusted
在后端LNMP服务器上部署Session共享
[root@web1 ~]# yum -y install php-pecl-memcache //web1、web2, 用于连接memcached数据库
[root@web1 ~]# vim /etc/php-fpm.d/
www.conf //修改PHP-FPM配置文件的两个参数,文件的最后2行
修改前效果如下:
php_value[session.save_handler] = files //默认定义Sessoin会话信息本地计算机
php_value[session.save_path] = /var/lib/php/session //默认在/var/lib/php/session
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
修改后效果如下:
php_value[session.save_handler] = memcache //定义Session信息存储在公共的memcached服务器上,主机参数中为memcache(没有d)
[root@web1 ~]# systemctl restart php-fpm
客户端测试
客户端使用浏览器访问两台不同的Web服务器,操作步骤前面一致,最终可以获得相关的Session ID信息。
- 构建memcached服务
Q: 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的增.删.改.查操作:安装memcached软件,并启动服务使用telnet测试memcached服务对memc ...
- 二十一.构建memcached服务、LNMP+memcached、PHP的本地Session信息、PHP实现session共享
proxy client web1 web2 1.构建memcached服务 ]# yum -y install memcached ]# cat /etc/sysconfig/memcached ...
- 高级运维(五):构建memcached服务、LNMP+memcached、使用Tomcat设置Session、Tomcat实现session共享
一.构建memcached服务 目标: 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的添.删.改.查操作: 1> 安装memcached软件,并启动服务d ...
- SpringBoot | 第三十四章:CXF构建WebService服务
前言 上一章节,讲解了如何使用Spring-WS构建WebService服务.其实,创建WebService的方式有很多的,今天来看看如何使用apache cxf来构建及调用WebService服务. ...
- Chris Richardson微服务翻译:构建微服务之使用API网关
Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关(本文) 构建微服务之微服务架构的进程通讯 微服务架构中的服务发现 微服务之事件驱动的数据管理 微服 ...
- 微服务系列(二):使用 API 网关构建微服务
编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨:微服务架构是如何影响客户端到服务端的通信,并提出一种使用 API 网关的方法. 作者介绍:Chris Richardso ...
- 0102-使用 API 网关构建微服务
一.移动客户端如何访问这些服务 1.1.客户端与微服务直接通信[很少使用] 从理论上讲,客户端可以直接向每个微服务发送请求.每个微服务都有一个公开的端点(https ://.api.company.n ...
- 使用 API 网关构建微服务-2
「Chris Richardson 微服务系列」使用 API 网关构建微服务 Posted on 2016年5月12日 编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨: ...
- 【高并发】高并发环境下构建缓存服务需要注意哪些问题?我和阿里P9聊了很久!
写在前面 周末,跟阿里的一个朋友(去年晋升为P9了)聊了很久,聊的内容几乎全是技术,当然了,两个技术男聊得最多的话题当然就是技术了.从基础到架构,从算法到AI,无所不谈.中间又穿插着不少天马行空的想象 ...
随机推荐
- 神经网络与机器学习 笔记—反向传播算法(BP)
先看下面信号流图,L=2和M0=M1=M2=M3=3的情况,上面是前向通过,下面部分是反向通过. 1.初始化.假设没有先验知识可用,可以以一个一致分布来随机的挑选突触权值和阈值,这个分布选择为均值等于 ...
- Portswigger web security academy:Server-side request forgery (SSRF)
Portswigger web security academy:Server-side request forgery (SSRF) 目录 Portswigger web security acad ...
- web技术培训(一)-云服务器、域名相关
云服务器 什么是云服务器(这部分可以跳过) 云服务器(Elastic Compute Service, ECS)是一种简单高效.安全可靠.处理能力可弹性伸缩的计算服务.其管理方式比物理服务器更简单高效 ...
- 【技巧】使用xshell和xftp连接centos连接配置
说明:xshell用来执行指令,xftp用来上传和下载文件. ① 这是xshell连接属性: ②.这是xftp连接属性 附件:这里给个xshelll和xftp的免安装的破解版本地址.侵删. 度娘链接: ...
- Codeforces Beta Round #107(Div2)
B.Phone Numbers 思路:就是简单的结构体排序,只是这里有一个技巧,就是结构体存储的时候,直接存各种类型的电话的数量是多少就行,在读入电话的时候,既然号码是一定的,那么就直接按照格式%c读 ...
- 优雅地使用命令行:Tmux 终端复用
转自:http://harttle.com/2015/11/06/tmux-startup.html 你是否曾经开过一大堆的Terminal?有没有把它们都保存下来的冲动?Tmux 的Session就 ...
- OO第1.2次作业·魔鬼的三角函数化简
多年以后,面对办公室的屏幕,我会回忆起开始肝第二周OO作业的那个遥远的下午.那时的程序是一个一两百行的符号求导,基类与接口在包里一字排开,工整的注释一望到底 谁能想到,接下来的十几个小时我要经历什么样 ...
- xxl-job的一些感悟与规范
后台计划任务设计思路: 日志埋点处理,便于prd排查问题 2种主动job搭配规范(正向job.反查job) 1种消息接收的处理规范,重试机制,返回状态 job开关维度 数据流图 线上暗job-便捷性- ...
- 分布式日志传输系统Databus(一)--系统介绍
Databus系统是微博DIP团队开源的分布式日志传输系统.它是一个分布式.高可用的,用于采集和移动大量日志数据的服务.它基于流式数据的简单而灵活的架构,具备健壮性和容错性,具有故障转移与恢复机制.它 ...
- 深入探索Android热修复技术原理读书笔记 —— so库热修复技术
热修复系列文章: 深入探索Android热修复技术原理读书笔记 -- 热修复技术介绍 深入探索Android热修复技术原理读书笔记 -- 代码热修复技术 深入探索Android热修复技术原理读书笔记 ...