nginx动态文件服务器,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 出现等比缩放图片。

解释

location ~ /imgs/(.+)\.(jpg|gif|png|ioc|jpeg)_(\d+)_(\d+)$

location 后面跟的 ~ 表示正则表达式匹配

(.+)\.(jpg|gif|png|ioc|jpeg)_(\d+)_(\d+) 图片名称的正则表达式

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

set $w $3;

设置变量。

$3 表示之前正则中第三个括号中的值

set $w $3; 表示将 正则中提取的值 赋值给变量 w 。

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

Nginx URL重写(rewrite)

rewrite的重要功能是实现RUL地址的重定向。

语法: rewrite [flag]

rewrite:关键字

: 正则,兼容正则表达式语句进行规则匹配

: 替代内容,将正则匹配的内容替换成replacement

[flag] : flag标记,rewrite支持的flag标记

flag标记说明:

last :本条规则匹配完成后,继续向下匹配新的location URI规则

break :本条规则匹配完成即终止,不再匹配后面的任何规则

redirect :返回302临时重定向,浏览器地址会显示跳转后的URL地址

permanent :返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

image_filter resize $w $h;

等比缩放图像。

image_filter_buffer 10M;

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

话外

Nginx中的判断

符号

解释

= 和!=

比较一个变量和字符串

~ 和!~

与指定正则表达式模式匹配

-f和!-f

判断指定的路径是否为存在且为文件

-d和 !-d

判断指定的路径是否为存在且为目录

-e和 !-e

判断指定的路径是否存在,文件或目录均可

-x和 !-x

判断指定路径的文件是否存在且可执行

在线Nginx配置网站

你可能感兴趣的:(nginx动态文件服务器)