装包-------配置----起服务---验证
 
装包:
[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@client ~]# firefox http://192.168.4.5/test.php    //无memcached的PHP扩展包,失败
[root@proxy ~]# yum -y install  php-pecl-memcache  //为PHP添加memcache扩展
[root@proxy ~]# systemctl restart php-fpm
4)客户端再次测试(结果会成功显示数据结果)
[root@client ~]# firefox http://192.168.4.5/test.php
 
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  /  {
                 proxy_pass http://webs;
            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
[root@client ~]# curl http://192.168.4.5/index.html        //验证,查看是否有数据
 
部署测试页面(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 ~]# firefox http://192.168.2.100            //访问后端服务器,填写账户信息
[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不一致)
[root@client ~]# google-chrome http://192.168.4.5
//填写注册信息后,刷新,还需要再次注册,说明两台计算机使用的是本地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)
php_value[session.save_path] = "tcp://192.168.2.5:11211"       //通过path参数定义公共的memcached服务器在哪(服务器的IP和端口)
[root@web1 ~]# systemctl  restart  php-fpm   
客户端测试
客户端使用浏览器访问两台不同的Web服务器,操作步骤前面一致,最终可以获得相关的Session ID信息。

十、构建memcached服务的更多相关文章

  1. 构建memcached服务

    Q: 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的增.删.改.查操作:安装memcached软件,并启动服务使用telnet测试memcached服务对memc ...

  2. 二十一.构建memcached服务、LNMP+memcached、PHP的本地Session信息、PHP实现session共享

    proxy client web1 web2   1.构建memcached服务 ]# yum -y install memcached ]# cat /etc/sysconfig/memcached ...

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

    一.构建memcached服务 目标: 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的添.删.改.查操作: 1> 安装memcached软件,并启动服务d ...

  4. SpringBoot | 第三十四章:CXF构建WebService服务

    前言 上一章节,讲解了如何使用Spring-WS构建WebService服务.其实,创建WebService的方式有很多的,今天来看看如何使用apache cxf来构建及调用WebService服务. ...

  5. Chris Richardson微服务翻译:构建微服务之使用API网关

    Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关(本文) 构建微服务之微服务架构的进程通讯 微服务架构中的服务发现 微服务之事件驱动的数据管理 微服 ...

  6. 微服务系列(二):使用 API 网关构建微服务

    编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨:微服务架构是如何影响客户端到服务端的通信,并提出一种使用 API 网关的方法. 作者介绍:Chris Richardso ...

  7. 0102-使用 API 网关构建微服务

    一.移动客户端如何访问这些服务 1.1.客户端与微服务直接通信[很少使用] 从理论上讲,客户端可以直接向每个微服务发送请求.每个微服务都有一个公开的端点(https ://.api.company.n ...

  8. 使用 API 网关构建微服务-2

    「Chris Richardson 微服务系列」使用 API 网关构建微服务 Posted on 2016年5月12日 编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨: ...

  9. 【高并发】高并发环境下构建缓存服务需要注意哪些问题?我和阿里P9聊了很久!

    写在前面 周末,跟阿里的一个朋友(去年晋升为P9了)聊了很久,聊的内容几乎全是技术,当然了,两个技术男聊得最多的话题当然就是技术了.从基础到架构,从算法到AI,无所不谈.中间又穿插着不少天马行空的想象 ...

随机推荐

  1. Day009 面向对象和方法回顾

    面向过程&面向对象 面向过程思想 步骤清晰简单,第一步做什么,第二步做什么..... 面象过程适合处理一些较为简单的问题 面向对象思想 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些 ...

  2. FreeBSD系统基本操作

    1:系统安装 2:关机与重启命令 立即关机,但是不关闭电源: shutdown -h now 立即关机,并且关闭电源: shutdown -p now 重启命令 shutdown -r now

  3. ES6新增常用方法

    字符串新增方法 padStart.padEnd 如果原字符串不够指定长度,则会在左侧(右侧)填充字符串,用以补全 padStart( length: number, fillStr?: string ...

  4. 记一次 .NET 车联网云端服务 CPU爆高分析

    一:背景 1. 讲故事 前几天有位朋友wx求助,它的程序CPU经常飙满,没找到原因,希望帮忙看一下. 这些天连续接到几个cpu爆高的dump,都看烦了,希望后面再来几个其他方面的dump,从沟通上看, ...

  5. 保姆级别的RabbitMQ教程!一看就懂!(有安装教程,送安装需要的依赖包,送Java、Golang两种客户端教学Case)

    保姆级别的RabbitMQ教程!一看就懂!(有安装教程,送安装需要的依赖包,送Java.Golang两种客户端教学Case)   目录 什么是AMQP 和 JMS? 常见的MQ产品 安装RabbitM ...

  6. shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。

    shell脚本?在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包 ...

  7. 基于多IP地址Web服务

    [Centos7.4版本] !!!测试环境我们首关闭防火墙和selinux [root@localhost ~]# systemctl stop firewalld [root@localhost ~ ...

  8. 凯撒密码Caesar

    //@132屋里上课群 #include<stdio.h>#include<stdlib.h>//颜色using namespace std;int jiami();int j ...

  9. Cron 定时任务命令-配置文件详解

    定时任务 定时任务的作用 1.系统级别的定时任务 ​ 临时文件清理 ​ 系统信息采集 ​ 日志文件切割 2.用户级别的定时任务 ​ 定时向互联网同步时间 ​ 定时备份系统配置文件 ​ 定时备份数据库的 ...

  10. Linux服务之DNS服务篇

    一.DNS服务概述 DNS(Domain Name System)域名系统,在TCP/IP 网络中有非常重要的地位,能够提供域名与IP地址的解析服务. DNS 是一个分布式数据库,命名系统采用层次的逻 ...