安裝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
出現(xiàn)了Nginx界面,說明服務(wù)正常啟動了。
訪問:http://localhost:9999/imgs/111.jpg
如果出現(xiàn)了文件夾下的111.jpg
圖片葵腹,那么初步配置就完成了玩般。
第二步银觅,動態(tài)縮略圖:
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
出現(xiàn)原圖。
訪問:http://localhost:9999/imgs/111.jpg_200_200
出現(xiàn)等比縮放圖片坏为。
解釋
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;
設(shè)置變量究驴。
$3
表示之前正則中第三個括號中的值
set $w $3;
表示將 正則中提取的值 賦值給變量 w 镊绪。
rewrite /imgs/(.+)\.(jpg|gif|png|ioc|jpeg)_(\d+)_(\d+)$ /imgs/$1.$2 break;
Nginx URL重寫(rewrite)
rewrite的重要功能是實現(xiàn)RUL地址的重定向。
語法:rewrite
<regex>
<replacement>
[flag]
rewrite:
關(guān)鍵字
<regex>:
正則洒忧,兼容正則表達式語句進行規(guī)則匹配
<replacement>:
替代內(nèi)容蝴韭,將正則匹配的內(nèi)容替換成replacement
[flag] :
flag標(biāo)記,rewrite支持的flag標(biāo)記flag標(biāo)記說明:
- last :本條規(guī)則匹配完成后熙侍,繼續(xù)向下匹配新的location URI規(guī)則
- break :本條規(guī)則匹配完成即終止榄鉴,不再匹配后面的任何規(guī)則
- redirect :返回302臨時重定向,瀏覽器地址會顯示跳轉(zhuǎn)后的URL地址
- permanent :返回301永久重定向蛉抓,瀏覽器地址欄會顯示跳轉(zhuǎn)后的URL地址
image_filter resize $w $h;
等比縮放圖像庆尘。
image_filter_buffer 10M;
設(shè)置讀取圖像緩沖的最大大小,超過則415錯誤巷送。
話外
Nginx中的判斷
符號 | 解釋 |
---|---|
= 和!=
|
比較一個變量和字符串 |
~ 和!~
|
與指定正則表達式模式匹配 |
-f 和!-f
|
判斷指定的路徑是否為存在且為文件 |
-d 和 !-d
|
判斷指定的路徑是否為存在且為目錄 |
-e 和 !-e
|
判斷指定的路徑是否存在驶忌,文件或目錄均可 |
-x 和 !-x
|
判斷指定路徑的文件是否存在且可執(zhí)行 |