Nginx實戰案例—圖片的過濾壓縮
1. 爲什麼要圖片過濾壓縮
在實際的企業當中,nginx服務器上的資源要儘可能的佔用的空間少一點
實際上信息量大的網頁和高清圖片佔用存儲空間是非常大的,這樣不利於服務器性能的優化
因此我們要在服務器上面將網頁和圖片進行壓縮,讓客戶端去下載就可以了
不管一個系統或網站的大與小,都存在相應的圖片處理、生成縮略圖、爲圖片加水印等等,如果涉及到APP端,這個圖片的處理需求變得更加重要了,因爲在目前來看,客戶端的屏幕大小不一,會導致以下問題:
- 圖片過大導致APP加載圖片速度慢;
- 消耗用戶過多流量。
2. 實現圖片的過濾壓縮
實驗前提:因爲nginx是模塊化的,實驗前必須編譯好這個模塊:
–with-http_image_filter_module=dynamic
如果編譯出錯,可能是因爲沒有gd-devel包,執行下面命令:
yum list gd #看到系統gd版本是 2.0.35-26,所以自己下載的gd-devel也得是這個版本
yum install -y gd-devel-2.0.35-26.el7.x86_64.rpm #自己到網上找到和系統gd版本一樣的gd-devel包
編輯nginx服務的配置文件:
vim /usr/local/nginx/conf/nginx.conf #寫入第一行內容和55行
1 load_module modules/ngx_http_image_filter_module.so;
52 location /download {
53 #limit_conn addr 1; #只能一個併發,多了會報錯
54 #limit_rate 50k; #限制帶寬,每秒最多50k
55 image_filter resize 150 100; #重新調整圖片尺寸(像素)
56 }
nginx -t #語法檢測
nginx -s reload #在不暫停服務的情況下重新加載
查看圖片本來的大小:
cd /usr/local/nginx/html/download/
ls
du -sh #爲32k
測試:
網頁搜索172.25.1.1/download/huge.jpg—>按f12—>選擇network—>按f5刷新—>查看到圖片被壓縮到2.50k