lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)

文章目录

    • 一、memcache的使用
        • 1.memcache的简介
        • 2.软件的安装
        • 3.软件的配置:
        • 4.图表方式查看缓存的配置
        • 5.通过访问默认发布文件来测试缓存是否提升了访问速度
    • 二、openrestry的使用
        • 1.软件的简介和安装
        • 2.配置文件的修改
    • 三、tomcat的安装和使用
        • 1.tomcat的简介和安装
        • 2.配置文件的修改
        • 三、session共享和会话保持
        • 1.再配置一台虚拟机来交叉存储,启用server2
        • 2.配置一个反向代理
        • 3.访问测试
    • 四、会话保持的实现(sticky)
        • 1.软件的选取和安装
        • 2.访问测试
        • 3.实现session共享存储,让server1出问题时,server2仍可以访问到信息
        • 4.测试访问

一、memcache的使用

1.memcache的简介

Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

2.软件的安装

首先可以在官网memcached.org获取安装包,本机使用的版本是memcache-2.2.5.gz

因为接下来要用到php命令,所以我们将命令加入到环境变量中
vim ~/.bash_profile				##修改环境变量文件
source ~/.bash_profile			##使修改生效

在这里插入图片描述

获取安装包后先解压
tar zxf memcache-2.2.5.gz			##解压安装包
cd memcache-2.2.5					##进入安装目录发现没有configure等编译执行文件
phpize								##执行这个php命令后会生成configure执行脚本命令
./configure							##检测系统环境和生成makefile文件
make && make install				##编译和安装

3.软件的配置:

vim /usr/local/lnmp/php/etc/php.ini				##修改php的配置文件添加memcache拓展功能
/etc/init.d/php-fpm reload						##重新加载配置

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第1张图片

yum install -y memcached						##安装服务支持
rpm -ql memcached								##查看安装后生成的文件及路径
/etc/init.d/memcached start						##有时候这样启动不会报错,我们可以查看端口再次确认
netstat -tnlp | grep memcache					##查看memcache所用端口

Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

yum install telnet -y							##安装telnet来测试服务
telnet localhost 11211							##输入主机名和端口来开启一个telnet会话
stats											##可以查看服务的信息和状态
set name 0 0 6									##查看是否可以存储信息

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第2张图片
在这里插入图片描述

4.图表方式查看缓存的配置

cd memcache-2.2.5			##进入软件的解压目录
cp memcache.php /usr/local/lnmp/nginx/html/			##将图形模板发送到nginx的默认发布目录下
vim /usr/local/lnmp/nginx/html/memcache.php			##修改默认发布文件,且修改这种文件不需要重启服务

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第3张图片

在网站上输入http://172.25.21.1/memcache.php进行登陆访问,需要填写刚才文件中设置的用户名和密码
登陆成功后界面如下图所示:

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第4张图片

5.通过访问默认发布文件来测试缓存是否提升了访问速度

cd memcache-2.2.5			##进入解压后的目录
cp example.php /usr/local/lnmp/nginx/html/		##把测试模板放到nginx的默认发布目录下,访问这个文件可以在图形上显示
在真机上使用apache工具ab进行访问测试:
ab -c 10 -n 5000 http://172.25.21.1/index.php		##表示10个并发同时访问,访问总次数为5000

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第5张图片

ab -c 10 -n 5000 http://172.25.21.1/example.php

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第6张图片
lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第7张图片

二、openrestry的使用

1.软件的简介和安装

OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。

安装包可以在官方中文网站http://openresty.org/cn/上下载,本机使用的版本是openresty-1.13.6.1.tar.gz
tar zxf openresty-1.13.6.1.tar.gz		##解压安装包
nginx -s stop							##为了避免冲突我们把原来的nginx停止掉

cd
./configure --prefix=/usr/local/lnmp/openresty			##检测系统环境和生成makefile文件
gmaek && gmake install					##根据提示编译安装
cd memcache-2.2.5						##进入memcache的解压目录
cp memcache.php example.php /usr/local/lnmp/openresty/nginx/html/		##把模板文件复制到openresty的发布目录下

2.配置文件的修改

cd /usr/local/lnmp/openresty/nginx/html		##进入openresty的默认发布目录
cp /usr/local/lnmp/nginx/html/memcache.php .	##将修改过的memcache.php复制过来
vim /uur/local/lnmp/openresty/nginx/cong/nginx.conf		##修改配置文件,可以在官网上找到代码块
/usr/local/lnmp/openresty/nginx/sbin/nginx				##启动服务

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第8张图片
lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第9张图片
lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第10张图片

三、tomcat的安装和使用

1.tomcat的简介和安装

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

软件包的获取可以在官网tomcat.apache.org上下载,需要注意的是他的运行需要安装jdk,java的编译环境,可以在rpms等官网上
下载,需要注意的是版本的对应,本机使用的版本为jdk-7u79-linux-x64.tar.gz和apache-tomcat-7.0.37.tar.gz
tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/		##-C解压到指定目录
tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/		
cd /usr/local/							
ln -s apache-tomcat-7.0.37 tomcat						##为了方便我们的操作我们给tomcat的解压目录建立一个软链接
vim /etc/profile			##把java的命令加入全局变量中
source /etc/profile			##使修改生效
java -version				##查看jdk的版本信息

在这里插入图片描述

2.配置文件的修改

cd /usr/local/tomcat/webapps/ROOT			##webapps是默认发布目录,ROOT是本机的默认发布目录

vim /usr/local/lnmp/openresty/nginx/conf/nginx.conf			##修改openresty配置文件
/usr/local/lnmp/openresty/nginx/sbin/nginx -s reload		##重新加载服务

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第11张图片

vim /usr/local/tomcat/webapps/ROOT/test.jsp			##编写一个jsp动态测试页面
the time is: <%=new java.util.Date() %>
/usr/local/tomcat/bin/startup.sh					##启动tomcat服务

在浏览器输入172.25.21.1/test.jsp访问测试页面

在这里插入图片描述
lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第12张图片

三、session共享和会话保持

1.再配置一台虚拟机来交叉存储,启用server2

[root@server1 local]# scp -r ./apache-tomcat-7.0.37/ root@172.25.21.2:/usr/local/ ##把配置好的tomcat发给server2
[root@server1 local]# scp  -r jdk1.7.0_79/ root@172.25.21.2:/usr/local/		##把配置好的jdk环境发给server2

server2的配置:
vim /etc/profile			##跟server1一样配置环境变量
export JAVA_HOME=/usr/local/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile			##使配置生效
java -version				##查看java版本
ln -s /usr/local/apache-tomcat-7.0.37 /usr/local/tomcat			##给tomcat目录创建一个软链接
/usr/local/tomcat/bin/startup.sh			##启动服务,但是一般不会报错
netstat -tnlp | grep java					##先查看端口是否被服务启用
vim /usr/local/tomcat/logs/catalina.out		##服务还有问题就查看这个日志,里面有详细的服务运行信息,所以一般要限制这个
										##日志的大小,不然它会一只占用越来越大的空间,此处我们没有那么多操作所以不限制

2.配置一个反向代理

获取一个java写的动态会话窗口test.jsp,
scp /usr/local/tomcat/webapps/ROOT/test.jsp root@172.25.21.2:/usr/local/tomcat/webapps/ROOT/	##发给server2
/usr/local/tomcat/bin/shutdown.sh		##没有重启命令,只能先关闭再打开服务,两边都重启
/usr/local/tomcat/bin/startup.sh

server1:  vim /usr/local/lnmp/openresty/nginx/conf/nginx.conf  	##做一个反向代理来切换会话窗口
/usr/local/lnmp/openresty/nginx/sbin/nginx -s reload			##重启服务

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第13张图片
lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第14张图片
lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第15张图片

3.访问测试

在网址输入172.25.21.1:8080可以直接看到tomcat的动态页面,因为这样没经过nginx处理
输入172.25.21.1只能看到静态界面

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第16张图片
lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第17张图片

访问我们java编写的动态窗口会话页面
可以保存信息,但是再次填写后ip轮询,原来的信息消失

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第18张图片
lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第19张图片

四、会话保持的实现(sticky)

1.软件的选取和安装

因为现在最新版只有付费的nginxplus里面才有这个组件,所以我们选取老版本的nginx来实现

Sticky是nginx的一个模块,它是基于cookie的一种nginx的负载均衡解决方案,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上,默认标识名为route
1.客户端首次发起访问请求,nginx接收后,发现请求头没有cookie,则以轮询方式将请求分发给后端服务器。
2.后端服务器处理完请求,将响应数据返回给nginx。
3.此时nginx生成带route的cookie,返回给客户端。route的值与后端服务器对应,可能是明文,也可能是md5、sha1等Hash值
4.客户端接收请求,并保存带route的cookie。
5.当客户端下一次发送请求时,会带上route,nginx根据接收到的cookie中的route值,转发给对应的后端服务器。

本机使用的是nginx-sticky-module-ng.tar.gz和nginx-1.10.1.tar.gz
tar zxf nginx-1.10.1.tar.gz				##解压安装包
tar zxf nginx-sticky-module-ng.tar.gz
/usr/local/lnmp/nginx/sbin/nginx -V		##查看原来安装的nginx的安装信息
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module /
--with-threads --with-file-aio --user=nginx --group=nginx --add-module=/root/nginx-sticky-module-ng
##添加上sticky模块,生成makefile
make && make install					##编译和安装

cd /usr/local/lnmp/nginx/				##进入安装后的目录
./sbin/nginx -V							##确认版本信息和添加模块
cp /usr/local/lnmp/openresty/nginx/conf/nginx.conf ./conf/nginx.conf		##把写好的配置文件复制过来
/usr/local/lnmp/openresty/nginx/sbin/nginx -s stop							##停止openresty

vim /usr/local/lnmp/nginx/conf/nginx.conf		##修改配置文件
/usr/local/lnmp/nginx/sbin/nginx				##启动服务

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第20张图片
lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第21张图片
lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第22张图片

2.访问测试

在浏览器输入http://172.25.21.1/test.jsp访问

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第23张图片

若server1的tomcat出现问题,server2还是不能保存信息

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第24张图片

3.实现session共享存储,让server1出问题时,server2仍可以访问到信息

在server2上安装memcache
yum install memcached -y				##安装软件爱你

在server1和server2上的操作
获取一个函数库,其中的jar文件全部拷贝到/usr/local/tomcat/lib下,
rm -fr memcached-session-manager-tc6-1.6.3.jar			##删除这个jar
##可以在网上找到

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第25张图片

vim /usr/local/tomcat/conf/context.conf		##添加策略(server1和server都要添加)
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.25.21.1:11211,n2:172.25.21.2:11211"
failoverNodes="n1" 
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>

/etc/init.d/memcached start					##都启动memcache缓存服务
/usr/local/tomcat/bin/shutdown.sh			##重启tomcat
/usr/local/tomcat/bin/startup.sh

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第26张图片

4.测试访问

在浏览器访问http://172.25.21.1/test.jsp,在编写的那台服务器关闭后,转换到另一台服务器且信息都在

lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第27张图片
lnmp服务的主要功能实现(memcache缓存、session共享和会话保持)_第28张图片

你可能感兴趣的:(实战)