美文网首页服务器配置学习
在nginx上撸一个图片服务器

在nginx上撸一个图片服务器

作者: stois | 来源:发表于2016-09-23 14:48 被阅读1139次

图片服务器存在的需求是,根据手机屏幕尺寸以及dpi的不同,将一些尺寸较大的图片进行动态等比例缩放,最终达到不浪费屏幕像素、也不希望图片糊掉的目的。

nginx下需要用到的东西:

  1. http_image_filter模块;
  2. proxy_pass/proxy_store;

预期的使用方法如下:

  1. 在服务器/webroot/image_resize文件夹下,建立当前项目文件夹(下文以aaa代替);
  2. 在aaa中传入希望动态缩放的图片文件(jpg,png),不要在aaa中传入文件夹;
  3. 将aaa的权限递归设置为777;
  4. 在浏览器输入http://hostname/resizeFile/images/aaa/12.jpg_10x10 , 就会在aaa中生成张将原图缩放为10x10的图片。之后每次访问该地址,都将得到这张已经生成好的图片。

下面是nginx图片服务器部分的代码:

location ~ "^(/resizeFile/images)/([\w-]+)/(.*)\.(jpe?g|png)_(\d+)x(\d+)$"{


                         set $dir    $2;
                         set $width  $5;
                         set $height $6;
                         set $dimens "_$5x$6";
                         set $reImage_name "$3$dimens.$4";
                         set $image_name "$3.$4";

                         alias /webroot/image_resize/$dir/$reImage_name;

                        set $image_uri image_resize/$dir/$image_name?width=$width&height=$height;

                        if (-f $request_filename){
                  
                        }

                         if (!-f $request_filename) {
                 #               proxy_pass http://127.0.0.1:80/$image_uri;
                                proxy_pass http://127.0.0.1/image_resize/$dir/$image_name?width=$width&height=$height;
                                 break;
                         }

                         proxy_store          /var/market/image_resize/$dir/$reImage_name;
                         proxy_store_access   user:rw  group:rw  all:r;
                         proxy_temp_path      /var/market/tempFIle;
                         proxy_set_header     Host $host;



                }

                  location ^~ /image_resize/{
                         #access_log  logs/image_resize.log;

                         image_filter resize $arg_width $arg_height;
                         image_filter_jpeg_quality 75;


                 }

注意事项:

  1. 建议将多数图片传入cdn服务器,图片服务器的目的是对大尺寸图片进行缩放,否则会浪费图片服务器的带宽;
  2. 前端在使用时,建议将原始图片宽高存入img的data属性内,然后根据dpi、屏幕尺寸、页面缩放比例来确定缩放后的宽和高。

代码部分参考了[Nginx]使用nginx的image_filter_module来处理图片

相关文章

  • 在nginx上撸一个图片服务器

    图片服务器存在的需求是,根据手机屏幕尺寸以及dpi的不同,将一些尺寸较大的图片进行动态等比例缩放,最终达到不浪费屏...

  • 图片服务器的搭建02

    Java实现把图片上传到图片服务器(nginx+vsftp) 在我上一篇笔记中已经记载了如何用nginx + vs...

  • 9.nginx

    1、静态HTTP服务器 首先,Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HT...

  • Nginx

    Nginx1.8.0的应用场景 http服务器(图片服务器/静态网页服务器)。Nginx是一个可以独立提供http...

  • CentOS 7 搭建 NFS 服务

    [TOC] 参考资料 将图片服务和应用服务分离大型网站架构 图片服务器分离Nginx服务器上搭建图片缓存服务的基本...

  • Nginx基本概念

    1.静态HTTP服务器 首先,Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HT...

  • Tomcat 与Nginx

    Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。 反向代...

  • Tomcat与Nginx

    Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。 反向代...

  • nginx的web入口修改

    在云服务器上输入: cd /usr/local/nginx/conf/nginx.confvim nginx.c...

  • 阿里云部署html静态页

    一个静态的html想放在阿里云 的处理方法: 首先你得有台服务器,然后在服务器上安装Nginx,然后在nginx的...

网友评论

    本文标题:在nginx上撸一个图片服务器

    本文链接:https://www.haomeiwen.com/subject/qemtyttx.html