安装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
<regex>
<replacement>
[flag]
rewrite:
关键字
<regex>:
正则,兼容正则表达式语句进行规则匹配
<replacement>:
替代内容,将正则匹配的内容替换成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 | 判断指定路径的文件是否存在且可执行 |