Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
首先可以在官网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 ##编译和安装
vim /usr/local/lnmp/php/etc/php.ini ##修改php的配置文件添加memcache拓展功能
/etc/init.d/php-fpm reload ##重新加载配置
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 ##查看是否可以存储信息
cd memcache-2.2.5 ##进入软件的解压目录
cp memcache.php /usr/local/lnmp/nginx/html/ ##将图形模板发送到nginx的默认发布目录下
vim /usr/local/lnmp/nginx/html/memcache.php ##修改默认发布文件,且修改这种文件不需要重启服务
在网站上输入http://172.25.21.1/memcache.php进行登陆访问,需要填写刚才文件中设置的用户名和密码
登陆成功后界面如下图所示:
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
ab -c 10 -n 5000 http://172.25.21.1/example.php
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的发布目录下
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 ##启动服务
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的版本信息
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 ##重新加载服务
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访问测试页面
[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 ##服务还有问题就查看这个日志,里面有详细的服务运行信息,所以一般要限制这个
##日志的大小,不然它会一只占用越来越大的空间,此处我们没有那么多操作所以不限制
获取一个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 ##重启服务
在网址输入172.25.21.1:8080可以直接看到tomcat的动态页面,因为这样没经过nginx处理
输入172.25.21.1只能看到静态界面
访问我们java编写的动态窗口会话页面
可以保存信息,但是再次填写后ip轮询,原来的信息消失
因为现在最新版只有付费的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 ##启动服务
在浏览器输入http://172.25.21.1/test.jsp访问
若server1的tomcat出现问题,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
##可以在网上找到
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
在浏览器访问http://172.25.21.1/test.jsp,在编写的那台服务器关闭后,转换到另一台服务器且信息都在