Nginx配置图片服务器--动态缩略图

安装Nginx

sudo apt-get install nginx

配置文件

配置文件位置 /etc/nginx/sites-available/default

配置时,容易出错,所以最好分两步:

第一步:

server {
    listen 9999;
    server_name localhost;
    location /imgs/ {
        autoindex on;
        root /home/pi/; # 配置root目录,图片文件放在 /home/pi/imgs/ 里面
    }
}

重启Nginx sudo service nginx restart
访问:http://localhost:9999 出现了Nginx界面,说明服务正常启动了。
访问:http://localhost:9999/imgs/111.jpg 如果出现了文件夹下的111.jpg图片,那么初步配置就完成了。

第二步,动态缩略图:

server {
    listen 9999;
    server_name localhost;
    location ~ /imgs/(.+)\.(jpg|gif|png|ioc|jpeg)_(\d+)_(\d+)$ {  # 解释1
        autoindex on;
        set $w $3;  # 解释2
        set $h $4;
        rewrite /imgs/(.+)\.(jpg|gif|png|ioc|jpeg)_(\d+)_(\d+)$ /imgs/$1.$2 break;  # 解释3
        image_filter resize $w $h; # 解释4
        image_filter_buffer 10M; # 解释5
        root /home/pi/;
    }
}

重启Nginx sudo service nginx restart
测试效果:
访问:http://localhost:9999/imgs/111.jpg 出现原图。
访问:http://localhost:9999/imgs/111.jpg_200_200 出现等比缩放图片。

解释

  1. location ~ /imgs/(.+)\.(jpg|gif|png|ioc|jpeg)_(\d+)_(\d+)$
  • location 后面跟的 ~ 表示正则表达式匹配
  • (.+)\.(jpg|gif|png|ioc|jpeg)_(\d+)_(\d+) 图片名称的正则表达式

这个正则会匹配 /imgs/IMG1111.jpg_200_200这样的地址

  1. set $w $3;

设置变量。
$3 表示之前正则中第三个括号中的值
set $w $3; 表示将 正则中提取的值 赋值给变量 w 。

  1. rewrite /imgs/(.+)\.(jpg|gif|png|ioc|jpeg)_(\d+)_(\d+)$ /imgs/$1.$2 break;
Nginx URL重写(rewrite)

rewrite的重要功能是实现RUL地址的重定向。
语法: rewrite <regex> <replacement> [flag]
rewrite:关键字
<regex>: 正则,兼容正则表达式语句进行规则匹配
<replacement>: 替代内容,将正则匹配的内容替换成replacement
[flag] : flag标记,rewrite支持的flag标记

flag标记说明:
  • last :本条规则匹配完成后,继续向下匹配新的location URI规则
  • break :本条规则匹配完成即终止,不再匹配后面的任何规则
  • redirect :返回302临时重定向,浏览器地址会显示跳转后的URL地址
  • permanent :返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
  1. image_filter resize $w $h;

等比缩放图像。

  1. image_filter_buffer 10M;

设置读取图像缓冲的最大大小,超过则415错误。

话外

Nginx中的判断

符号解释
=!=比较一个变量和字符串
~!~与指定正则表达式模式匹配
-f!-f判断指定的路径是否为存在且为文件
-d!-d判断指定的路径是否为存在且为目录
-e!-e判断指定的路径是否存在,文件或目录均可
-x!-x判断指定路径的文件是否存在且可执行
    原文作者:Pan_大宝
    原文地址: https://www.jianshu.com/p/5f1eeb3b9560
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞