`

nignx 实现图片服务器负载均衡与缓存

阅读更多

公司想把图片从阿里云的服务器上迁移到自己的服务器,顺便建立一套新的图片存储系统。

开始打算使用FastDFS,但是FastDFS有自己的文件名生成规则,我们网站已经有了很多图片,如果每个图片都重新生成的话,工作量比较大。由于时间原因,临时采用了nginx来实现。

 

采用了3台服务器,每台服务器上都安装了nginx。用户访问相应图片时,根据自己定义的nginx location的hash规则,2012年的图片映射到一台机器上,2013年的映射到另一台机器上。

 

由于nginx已经支持了web缓存,考虑到图片可能会被临时替换,所以需要一个可以清除缓存的组件ngx_cache_puge。

 

 

#现在并解压 
wget http://labs.frickle.com/files/ngx_cache_purge-2.0.tar.gz
tar zxvf ngx_cache_purge-2.0.tar.gz
#在安装nginx的时候 增加其组件
./configure --add-module=../ngx_cache-2.0 --prefix=/usr/local/nginx
make 
make install
 

 

我开始装的是purge-1.0在make的时候报错,后来考虑是nginx版本不兼容的问题,换成了2.0之后就不报错了。

 

废话不多说,直接上nginx的配置文件。

入口nginx配置 负责分发到两天机器上

 

#配置缓存目录 两个目录必须在同一分区
proxy_temp_path /home/data0/proxy_temp_path;
proxy_cache_path /home/data0/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;

#两天图片服务器上面都通过nginx部署了web服务
upstream pic1{
          server 192.168.2.6:8080;
}

upstream pic2{
        server 192.168.2.2:8080;
}

server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #这个要放在前面,以免被提前拦截了,用来清除缓存的
        location ~ /purge(/.*){


            #allow 127.0.0.1;
            #allow 192.168.2.6;
            #deny  all;
            proxy_cache_purge cache_one $host$1$is_args$args;
         }

location ~ /{

        proxy_cache cache_one;
        proxy_cache_valid 200 304 12h;
        proxy_cache_valid 301 302 1m;
        proxy_cache_valid any 1m;

        #如果是图片路径总包含/2013/ 则映射到pic1
        proxy_cache_key $host$uri$is_args$args;
        if ( $request_uri ~* "\w*\/2013\/\w*\.(ico|gif|bmp|jpg|jpeg|png|swf)$"){
                proxy_pass http://pic1;
         }
        if ( $request_uri ~* "\w*\/2012\/\w*\.(ico|gif|bmp|jpg|jpeg|png|swf)$"){
                proxy_pass http://pic2;
         }
         proxy_pass http://pic2;
        }
}
 

 

  图片服务器nginx配置,这个类似fastdfs中的storage节点,会映射到服务器的/home/www路径

 

 

 server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/www;
            index  index.html index.htm;
        }
}
 

 

这样,通过路径就能访问到图片服务器上的图片。并且会对图片做12小时的缓存。当你需要清除缓存的时候,只要在图片的路径前面加一个/purge,再执行下即可。如图片路径http://img.naomi.cn/pic/2012/100.jpg 那么清除缓存的路径就是http://img.naomi.cn/purge/pic/2012/100.jpg。

 

 

 

 

 

 

  • 大小: 4.2 KB
0
1
分享到:
评论

相关推荐

    nginx 负载均衡与缓存服务器标准配置文件

    nginx 负载均衡与缓存服务器标准配置文件

    nginx+tomcat7负载均衡+redis缓存session

    在构建高性能、高可用性的Web应用系统时,"nginx+tomcat7负载均衡+redis缓存session"是一种常见的架构模式。这种模式结合了Nginx的反向代理和负载均衡能力,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用于...

    Nginx+tomcat 实现负载均衡session共享demo

    `Nginx`作为一款高性能的反向代理服务器,常被用于负载均衡,而`Tomcat`则是一款广泛使用的Java应用服务器,尤其适合处理Servlet和JSP应用。本教程将详细讲解如何通过`Nginx`实现`Tomcat`集群的负载均衡,并实现`...

    使用Nginx轻松实现开源负载均衡

    Nginx不仅可以做四层负载均衡(基于TCP/UDP协议),还可以实现七层负载均衡(基于HTTP/HTTPS协议),根据请求的内容进行智能分发。通过配置不同的负载均衡策略,如轮询、权重分配、最少连接数等,可以灵活地调度后端...

    Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    ### Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解 #### 一、前言 Nginx是一款广泛使用的高性能HTTP和反向代理Web服务器,也是邮件代理服务器,并具有IMAP/POP3/SMTP服务。Nginx以其稳定性、丰富的...

    Nginx配置负载均衡和缓存详解

    ### Nginx配置负载均衡和缓存详解 ...Nginx不仅是一款优秀的Web服务器,同时也是实现负载均衡和缓存的理想工具。通过合理配置,Nginx可以帮助我们构建高效稳定的Web应用环境,提高用户体验,降低运营成本。

    nginx实现请求的负载均衡 + keepalived实现nginx的高可用的shell脚本

    这里我们关注的是如何通过Nginx实现请求的负载均衡以及利用Keepalived实现Nginx的高可用性。这两个技术是现代Web架构中的重要组成部分,特别是在大型分布式系统中。 首先,Nginx是一个高性能的反向代理服务器和HTTP...

    nginx应用部署和负载均衡应用

    Nginx可以实现负载均衡,通过`upstream`块定义一组后端服务器,然后在`server`块中使用`proxy_pass`指令将请求分发给这些服务器。负载均衡策略包括轮询(round-robin)、最少连接(least connections)、IP哈希(ip...

    nginx+tomcat实现负载均衡1

    总之,"nginx+tomcat实现负载均衡1"的学习将涵盖Nginx的基本操作、负载均衡配置、与Tomcat的集成以及高可用性的实现,这些都是构建高性能Web服务的关键技术。通过这些知识,开发者可以设计出更健壮、高效的分布式...

    nginx配置优化+负载均衡+动静分离详解

    ### Nginx配置优化、负载均衡与动静分离详解 #### 一、Nginx配置优化 在现代Web应用中,Nginx作为一种高性能的HTTP服务器和反向代理服务器,在提高网站响应速度、处理高并发连接方面起着至关重要的作用。通过对...

    Nginx轻松实现开源负载均衡

    1. **Nginx+Keepalived**:通过结合Keepalived,可以实现Nginx负载均衡器的双机热备,当一台服务器出现故障时,虚拟IP会自动切换到另一台正常运行的服务器上,保证服务连续性。 2. **与硬件负载均衡器的对比**:...

    nginx 双tomcat 负载均衡

    Nginx 是一款流行的开源反向代理服务器软件,可以实现负载均衡、缓存、SSL 加速等多种功能。在本文中,我们将介绍如何使用 Nginx 实现双 Tomcat 负载均衡,以提高网站的可用性和性能。 什么是负载均衡 负载均衡...

    Nginx与Tomcat配置实现负载均衡.zip

    本教程将详细介绍如何通过Nginx配置实现对Tomcat服务器集群的负载均衡,从而提高系统的稳定性和处理能力。 首先,我们需要理解Nginx和Tomcat各自的角色。Nginx是一款高性能的反向代理服务器和HTTP缓存,它以其高效...

    nginx+tomcat实现负载均衡

    这个架构结合了Nginx的反向代理和负载均衡能力与Tomcat的强大应用服务器功能,可以有效地处理高流量和复杂的Web应用程序。下面将详细阐述这一组合的关键知识点。 **1. Nginx介绍** Nginx是一款轻量级、高性能的HTTP...

    web服务器集群负载均衡Nginx

    总的来说,Nginx的Web服务器集群负载均衡功能为企业级应用提供了强大的支持,它不仅能有效应对高并发访问,还能通过反向代理隐藏内部结构,提升安全性,同时通过灵活的配置和负载均衡策略,实现了系统的高效运行和...

    Nginx负载均衡配置

    首先,要配置Nginx与Tomcat实现负载均衡,需要准备两个Tomcat实例,每个实例可以部署一个简单的Web项目,例如通过在页面上标注不同的端口号,以便区分它们。部署完成后,需要配置Nginx的nginx.conf文件,使其成为一...

    Nginx搭建图片服务器(静态资源缓存服务器).zip

    在构建Web服务时,Nginx因其高性能、轻量级和强大的反向代理及负载均衡能力而被广泛采用。在本教程中,我们将探讨如何利用Nginx搭建一个专门用于处理图片的静态资源缓存服务器。这个过程主要包括Nginx的安装、配置...

Global site tag (gtag.js) - Google Analytics