一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - Nginx服務器中用于生成縮略圖的模塊配置教程

Nginx服務器中用于生成縮略圖的模塊配置教程

2019-11-10 15:34goldensun Nginx

這篇文章主要介紹了Nginx服務器中用于生成縮略圖的模塊配置教程,包括實時生成縮略圖到硬盤上的方法講解,需要的朋友可以參考下

ngx_image_thumb模塊生成縮略圖

ngx_image_thumb是nginx中用來生成縮略圖的模塊,生存縮略圖的方法很多,本nginx模塊主要功能是對請求的圖片進行縮略/水印處理,支持文字水印和圖片水印。支持自定義字體,文字大小,水印透明度,水印位置,判斷原圖是否是否大于指定尺寸才處理等等。
1. 編譯方法
編譯前請確認您的系統已經安裝了libcurl-dev libgd2-dev libpcre-dev 依賴庫
1.1 Debian / Ubuntu 系統舉例

?
1
2
3
# 如果你沒有安裝GCC相關環境才需要執行
$ sudo apt-get install build-essential m4 autoconf automake make
$ sudo apt-get install libgd2-noxpm-dev libcurl4-openssl-dev libpcre3-dev

1.2 CentOS /RedHat / Fedora

?
1
2
# 請確保已經安裝了gcc automake autoconf m4
$ sudo yum install gd-devel pcre-devel libcurl-devel

1.3 FreeBSD / NetBSD / OpenBSD
# 不多說了,自己用port 把libcurl-dev libgd2-dev libpcre-dev 裝上吧
# 編譯前請確保已經安裝gcc automake autoconf m4
1.4 Windows
# 也支持的,不過要修改的代碼太多了,包括Nginx本身,用VC++來編譯
# 嫌麻煩可以用cygwin來編譯。還是不建議你這么做了,用Unix/Linux操作系統吧。
2. nginx / tengine 安裝
選Nginx還是Tengine,您自己看,兩者選其一
2.1 下載Tengine

?
1
2
3
# wget http://tengine.taobao.org/download/tengine-1.4.5.tar.gz
# tar -zxvf tengine-1.4.5.tar.gz
# cd tengine-1.4.5

2.2 下載Nginx

?
1
2
3
# wget http://nginx.org/download/nginx-1.4.0.tar.gz
 # tar -zxvf nginx-1.4.0.tar.gz
 # cd nginx-1.4.0

2.3 安裝模塊

?
1
2
3
4
5
# wget https://github.com/3078825/nginx-image/archive/master.zip
# unzip master.zip
# ./configure --add-module=./nginx-image-master
# make
# make install

3. 配置

?
1
2
3
4
5
6
location / {
 root html;
 #添加以下配置
 image on;
 image_output on;
 }

4. 參數

  • image on/off 是否開啟縮略圖功能,默認關閉
  • image_backend on/off 是否開啟鏡像服務,當開啟該功能時,請求目錄不存在的圖片(判斷原圖),將自動從鏡像服務器地址下載原圖
  • image_backend_server 鏡像服務器地址
  • image_output on/off 是否不生成圖片而直接處理后輸出 默認off
  • image_jpeg_quality 75 生成JPEG圖片的質量 默認值75
  • image_water on/off 是否開啟水印功能
  • image_water_type 0/1 水印類型 0:圖片水印 1:文字水印
  • image_water_min 300 300 圖片寬度 300 高度 300 的情況才添加水印
  • image_water_pos 0-9 水印位置 默認值9 0為隨機位置,1為頂端居左,2為頂端居中,3為頂端居右,4為中部居左,5為中部居中,6為中部居右,7為底端居左,8為底端居中,9為底端居右
  • image_water_file 水印文件(jpg/png/gif),絕對路徑或者相對路徑的水印圖片
  • image_water_transparent 水印透明度,默認20
  • image_water_text 水印文字 "Power By Vampire"
  • image_water_font_size 水印大小 默認 5
  • image_water_font 文字水印字體文件路徑
  • image_water_color 水印文字顏色,默認 #000000

4.1調用說明

這里假設你的nginx 訪問地址為 http://127.0.0.1/
并在nginx網站根目錄存在一個 test.jpg 的圖片
通過訪問
http://127.0.0.1/test.jpg!c300x200.jpg 將會 生成/輸出 test.jpg 300x200 的縮略圖
其中 c 是生成圖片縮略圖的參數, 300 是生成縮略圖的 寬度 200 是生成縮略圖的 高度
一共可以生成四種不同類型的縮略圖。
支持 jpeg / png / gif (Gif生成后變成靜態圖片)
C 參數按請求寬高比例從圖片高度 10% 處開始截取圖片,然后縮放/放大到指定尺寸( 圖片縮略圖大小等于請求的寬高 )
M 參數按請求寬高比例居中截圖圖片,然后縮放/放大到指定尺寸( 圖片縮略圖大小等于請求的寬高 )
T 參數按請求寬高比例按比例縮放/放大到指定尺寸( 圖片縮略圖大小可能小于請求的寬高 )
W 參數按請求寬高比例縮放/放大到指定尺寸,空白處填充白色背景顏色( 圖片縮略圖大小等于請求的寬高 )
5. 調用舉例

?
1
2
3
4
5
6
7
8
http://127.0.0.1/test.jpg!c300x300.jpg
http://127.0.0.1/test.jpg!t300x300.jpg
http://127.0.0.1/test.jpg!m300x300.jpg
http://127.0.0.1/test.jpg!w300x300.jpg
http://127.0.0.1/test.c300x300.jpg
http://127.0.0.1/test.t300x300.jpg
http://127.0.0.1/test.m300x300.jpg
http://127.0.0.1/test.w300x300.jpg

nginx實時生成縮略圖到硬盤上
現在隨著各終端的出現(手機,ipad等平板),以及各種終端的手機分辨率和尺寸都不同,現在手機用戶流量都是寶,網上出現了各種各樣的生成縮略圖功能的架構,有使用php實時生成縮略圖的,也有用nginx + lua實現的,上面我也講到了使用nginx生成縮略圖,但是用戶每次訪問都需要生成一次,會給cpu和硬盤帶來比較大的壓力,今天帶來了另外一種方式,這次使用nginx將原圖生成縮略圖到硬盤上.看我的配置
1. 首先建好cache目錄

?
1
# mkdir /data/site_cache/

2. 修改nginx配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
location ~* ^/resize {
 root /data/site_cache/$server_name;
 set $width 150;
 set $height 100;
 set $dimens "";
 
 if ($uri ~* "^/resize_(\d+)x(\d+)/(.*)" ) {
  set $width $1;
  set $height $2;
  set $image_path $3;
  set $demins "_$1x$2";
 }
 
 if ($uri ~* "^/resize/(.*)" ) {
  set $image_path $1;
 }
 
 set $image_uri image_resize/$image_path?width=$width&height=$height;
 
 if (!-f $request_filename) {
  proxy_pass http://127.0.0.1/$image_uri;
  break;
 }
 proxy_store /data/site_cache/$server_name/resize$demins/$image_path;
 proxy_store_access user:rw group:rw all:r;
 proxy_set_header Host $host;
 expires 30d;
 access_log off;
}
 
location /image_resize {
 alias /data/site/$server_name/;
 image_filter resize $arg_width $arg_height;
 image_filter_jpeg_quality 75;
 access_log off;
}

生成縮略圖流程如下:
(1)、原圖在www.ythuaji.com.cn/image/1.jpg。我需要一份100x100的縮略圖。
(2)、請求www.ythuaji.com.cn/resize_100x100/image/1.jpg.
(3)、這個請求進入了location ~* ^/resize,接著判斷image_path這個目錄下是否存在這張圖片,如果存在直接放回給用戶,
(4)、不存在那么跳轉到//www.ythuaji.com.cn/image_resize/image/1.jpg?width=100&height=100;
(5)、location /image_resize根據傳入的width和height執行縮略功能,并且設置圖像質量為75
(6)、接著生成文件到/data/site_cache/www.ythuaji.com.cn/resize_100x100/image/1.jpg
(7)、并且返回圖片給用戶
(8)、nginx生成縮略圖到硬盤上的功能到這里就結束了

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国内久久精品视频 | 私人黄色影院 | 青青久久精品国产免费看 | 成人深夜视频 | 欧美一二区视频 | 91精品国产免费久久 | xxoo做爰猛烈动态 | 成人天堂入口网站 | 欧美一区高清 | 2020韩国r级理论片在线观看 | 精品9e精品视频在线观看 | 国产一区二区在线免费观看 | 91精品国产9l久久久久 | 1024在线视频精品免费 | 青青99| 成人啪啪漫画全文阅读 | 加勒比一本大道香蕉在线视频 | 丝瓜视频成人在线观看 | 啪啪艹 | 无人在线视频高清免费播放 | 国产99在线观看 | 白白国产永久免费视频 | 黑人开嫩苞| 四虎免费在线视频 | 大又大又黄又爽免费毛片 | 久久久久综合 | 爱操综合 | 91精品啪在线观看国产线免费 | 无限资源在线观看完整版免费下载 | daring国家队在线观看樱花动漫 | 国产视频一区在线观看 | 精品久久久噜噜噜久久久app | videojapan日本孕交孕 | 性一交一无一伦一精一品 | 色淫影院| 国产第7页 | 久久se视频精品视频在线 | 春光乍泄在线 | 国产精品免费看香蕉 | 91porn最新网址| 男人晚上看的 |