安装Nginxsudo 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判断指定路径的文件是否存在且可执行