Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

环境:

一台公网客户ip:202.106.0.20

一台nginx代理服务器ip:192.168.1.11 公网ip202.106.0.1

两台私网memcached服务器ip:192.168.1.111     ip192.168.1.112

两台私网web服务器ip:192.168.1.12 动态tomcat网页   ip192.168.1.13  动态tomcat网页  

需求:

1:公网客户可以通过nginx代理服务器访问公司主页www.sw.com,并实现session会话共享

2nginx可以实现动态和静态网页分离访问不同web服务器

3:防防盗链

实现步骤:

1web服务器上安装jdk库包和tomcat源码包,设置为开机启动

[root@tom1 ~]#yum -y install gcc gcc-c++ make                   //安装编译环境包

[root@tom1 ~]#chmod +x jdk-6u27-linux-i586.bin                //bin包执行权限

[root@tom1 ~]#./jdk-6u27-linux-i586.bin  //运行jdk.bin安装

[root@tom1 ~]#mv jdk1.6.0_27 /usr/local/jdk                         //习惯上把源码包放到/usr/local

[root@tom1 ~]#vim /etc/bashrc                                               //定义java参数让系统调用

export  JRE_HOME=/usr/local/jdk                           //主目录位置export  JAVA_BIN=/usr/local/jdk/bin                      //bin文件夹位置export  PATH=$JRE_HOME/bin:$PATH                         //设为系统全局变量,方便调export  CLASSPATH=.:$JRE_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar  //指定工具位置export  JRE_HOME   JAVA_BIN   PATH   CLASSPATH       //定义为系统全局变量

[root@tom1 ~]# tar -zxvf apache-tomcat-6.0.32.tar.gz -C /usr/local     //解压并放到/usr/local

[root@tom1 ~]# mv /usr/local/{apache-tomcat-6.0.32,tomcat}   //重命名

[root@tom1 tomcat]# ./bin/startup.sh                                          //启动tomcat 

[root@tom1 tomcat]# vim conf/tomcat-users.xml                      //访问tomcat网页根据错误提示添加用户和密码

 

 36 
 37 
 38 

[root@tom1 tomcat]# ./bin/shutdown.sh                                          //关闭tomcat 

[root@tom1 tomcat]# ./bin/startup.sh                                          //启动tomcat 

[root@tom1 ~]# vim /etc/rc.local                  //添加到开机启动脚本

/usr/local/tomcat/bin/startup.sh

2:代理服务器上安装nginx源码包程序,设置为开机启动,备份主配置文件,配置成反向代理

[root@1.11 ~]# useradd  -M -s /sbin/nologin nginx                //添加系统用户nginx,无家目录和禁止登录

[root@1.11 ~]#yum -y install gcc gcc-c++ make pcrc-devel openssl-devel   //安装编译环境开发包

[root@1.11 ~]#mkdir /nginx                                                    //创建存放文件夹

[root@1.11 nginx-0.8.55]# ./configure --prefix=/nginx \        //转换源码,指定安装目录

>--user=nginx --group=nginx                                                  //指定进程属主,属组

>--with-http_stub_status_module --with-http_ssl_module;    //加载查看状态模块,ssl模块

[root@1.11 nginx-0.8.55]# make  && make install                //编译安装

[root@1.11 ~]# vim /etc/rc.local                  //添加到开机启动脚本

/nginx/sbin/nginx

[root@1.11 ~]# cp -p /nginx/conf/{nginx.conf,nginx.conf.bak}  //备份主配置文件

[root@1.11 ~]# vim /nginx/conf/nginx.conf

...  3 worker_processes  1;                    //进程个数,建议和cpu核数相同...12 events {13     worker_connections  1024;    //每进程最大并发连接数14 }...17 http {...20     upstream web {                    //定义web地址池组    21     server 192.168.1.12:8080;               22     server 192.168.1.13:8080;23         }...122     server {123         listen     80;124         server_name  www.sw.com;125         location / {128            proxy_pass http://web;                      //调用web地址池129         }130         location ~*  \.jsp$ {   //当访问结尾是jsp时,代理到192.168.1.12  192.168.1.13131            proxy_pass http://web;132         }133         location ~* \.(gif|png|jpg|mp3|rm|flv)$ {    //防盗链,只允许本域直接访问134         valid_referers none blocked .sw.com;135         if ($invalid_referer) { rewrite ^/ http://192.168.1.11/error.htm;}136         }137       }...150 }

3:缓存服务器上安装库包和memcached源码包,设置为开机启动

[root@mem2 ~]# tar -zxvf libevent-2.0.15-stable.tar.gz

[root@mem2 libevent-2.0.15]# ./configure &&make &&make install

[root@mem2 ~]# vim /etc/ld.so.conf.d/libevent.conf

/usr/local/lib

[root@mem2 ~]# ldconfig -v|grep libevent

[root@mem2 ~]# tar -zxvf memcached-1.4.5.tar.gz

[root@mem2 memcached-1.4.5]# ./configure &&make &&make install

[root@mem2 ~]# vim /etc/rc.localhost

memcached -l 192.168.1.112 -u root -d -vvv -m 100M -n 10 -f 2

[root@mem2 ~]# memcached -l 192.168.1.112 -u root -d -vvv -m 100M -n 10 -f 2

4:配置tomcat,使链接memcached的会话信息共享

类库:kryo-1.04.jar     kryo-serializers-0.9.jar   minlog-1.2.jar    msm-kryo-serializer-1.5.1.jar    reflectasm-1.01.jar     

管理类:memcached-2.5.jar     memcached-session-manager-1.5.1.jar     memcached-session-manager-tc6-1.5.1.jar                       [root@tom1 ~]# cp * /usr/local/tomcat/lib/                           //把上面的类包都复制进tomcatlib目录

[root@tom1 ~]# vim /usr/local/tomcat/conf/context.xml     //编辑连接配置文件添加

...19 
20 
...//class等是定义调用类,REQUEST定义不缓存的内容,memcached指定缓存服务器地址,failover指定备用节点

[root@tom1 ~]# /usr/local/tomcat/bin/shutdown.sh              //重启tomcat

[root@tom1 ~]# /usr/local/tomcat/bin/startup.sh