nginx memcache 页面缓存

来源:互联网 发布:linux怎么打开防火墙 编辑:程序博客网 时间:2024/05/21 10:49

一,相关概念

     1.Nginx是一款轻量级的web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、淘宝、腾讯等。在连接高并发的情况下,Nginx是Apache服务器不错的替代品,Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。

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

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

      4.nginx的memcached_module模块可以直接从memcached服务器中读取内容后输出,后续的请求不再经过应用程序处理,如php-fpm、django,大大的提升动态页面的速度。nginx只负责从memcached服务器中读取数据,要往memcached写入数据还得需要后台的应用程序来完成,主动的将要缓存的页面缓存到memcached中。

二、服务安装及配置

      1.安装java环境

       因为需要用到tomcat所以需要配置java环境

       tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local  并做软链接方便使用

       vim /etc/profile

export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/binsource /etc/profile

        source /etc/profile

        2.配置tomcat

tar zxf apache-tomcat-7.0.78tar.gz  -C  /usr/local


ln -s apache-tomcat-7.0.78/ tomcat

在网上下载下面几个包,放到lib下

asm-3.2.jar                              minlog-1.2.jar
kryo-1.04.jar                            msm-kryo-serializer-1.6.3.jar
kryo-serializers-0.10.jar                reflectasm-1.01.jar
memcached-session-manager-1.6.3.jar      spymemcached-2.7.3.jar
memcached-session-manager-tc7-1.6.3.jar

启动tomcat: bin/startup.sh

查看8080端口,tomcat默认占用8080端口: netstat -anplt | grep :8080

tomcat默认发布目录: /usr/local/apache-tomcat-7.0.78/webapps/ROOT


vim /usr/local/apache-tomcat-7.0.78/conf/context.xml


<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcacheNodes="n1:172.25.254.1:11211,n2:172.25.254.2:11211"
failoverNodes="n1"    ###server2 设置为n2
requsetUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>

</Context>

      3.配置nginx

添加 nginx-sticky-module 为 nginx 的第三方模块,使 nginx 支持 sticky 模式,所谓 sticky 模式就是指同一个用户的访问请求都被发送到同一个 tomcat 实例上处理。

vim /usr/local/lnmp/nginx/conf/nginx.conf


 http {
   upstream test{
              sticky;
                 server 172.25.254.1:8080;
                 server 172.25.254.2:8080;
             }

             location ~ \.jsp$ {
                     proxy_pass http://test;
             }

 
    server {
            listen 80;
            server_name www.test.org;
    
            location / {
                    proxy_pass http://test;
  

nginx  -t  检查语法错误  nginx -s reload 重启nginx


       4.安装memcached

yum install memcached -y

/etc/init.d/memcached start

memcached 默认开启11211 端口:   netstat -anple | grep :11211


三、测试

/usr/local/apache-tomcat-7.0.78/webapps/ROOT/test.jsp


第一台虚拟机的tomcat  server1 time is: <%=new java.util.Date() %> 

第二台虚拟机的tomcat  server2 time is: <%=new java.util.Date() %>
                             
                                      
在物理机的浏览器上访问 www.test.org/test.jsp  会显示当前的时间

如果 某一个server 出现故障其备用的server 会代替其工作 避免一些不可控的意外发生



原创粉丝点击