nginx memcache 页面缓存

本文介绍了如何使用Nginx结合Memcached实现页面缓存,以提高动态Web应用的性能。首先讲解了Nginx、Memcached和Tomcat的基本概念,然后详细阐述了配置Nginx、Tomcat以及安装和设置Memcached的过程,最后通过测试验证了配置的正确性和缓存的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,相关概念

     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.nginxmemcached_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 会代替其工作 避免一些不可控的意外发生



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值