欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2016年01月27日 16:28:49   投稿:goldensun  
這篇文章主要介紹了Nginx服務(wù)器中用于生成縮略圖的模塊配置教程,包括實(shí)時(shí)生成縮略圖到硬盤(pán)上的方法講解,需要的朋友可以參考下

ngx_image_thumb模塊生成縮略圖

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

# 如果你沒(méi)有安裝GCC相關(guān)環(huán)境才需要執(zhí)行
$ 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

# 請(qǐng)確保已經(jīng)安裝了gcc automake autoconf m4
$ sudo yum install gd-devel pcre-devel libcurl-devel

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

 # 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

# 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 安裝模塊

 # wget https://github.com/3078825/nginx-image/archive/master.zip
 # unzip master.zip
 # ./configure --add-module=./nginx-image-master
 # make
 # make install

3. 配置

location / {
 root html;
 #添加以下配置
 image on;
 image_output on;
 }

4. 參數(shù)

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

4.1調(diào)用說(shuō)明

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

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實(shí)時(shí)生成縮略圖到硬盤(pán)上
現(xiàn)在隨著各終端的出現(xiàn)(手機(jī),ipad等平板),以及各種終端的手機(jī)分辨率和尺寸都不同,現(xiàn)在手機(jī)用戶流量都是寶,網(wǎng)上出現(xiàn)了各種各樣的生成縮略圖功能的架構(gòu),有使用php實(shí)時(shí)生成縮略圖的,也有用nginx + lua實(shí)現(xiàn)的,上面我也講到了使用nginx生成縮略圖,但是用戶每次訪問(wèn)都需要生成一次,會(huì)給cpu和硬盤(pán)帶來(lái)比較大的壓力,今天帶來(lái)了另外一種方式,這次使用nginx將原圖生成縮略圖到硬盤(pán)上.看我的配置
1. 首先建好cache目錄

# mkdir /data/site_cache/

2. 修改nginx配置

 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.dbjr.com.cn/image/1.jpg。我需要一份100x100的縮略圖。
(2)、請(qǐng)求www.dbjr.com.cn/resize_100x100/image/1.jpg.
(3)、這個(gè)請(qǐng)求進(jìn)入了location ~* ^/resize,接著判斷image_path這個(gè)目錄下是否存在這張圖片,如果存在直接放回給用戶,
(4)、不存在那么跳轉(zhuǎn)到http://www.dbjr.com.cn/image_resize/image/1.jpg?width=100&height=100;
(5)、location /image_resize根據(jù)傳入的width和height執(zhí)行縮略功能,并且設(shè)置圖像質(zhì)量為75
(6)、接著生成文件到/data/site_cache/www.dbjr.com.cn/resize_100x100/image/1.jpg
(7)、并且返回圖片給用戶
(8)、nginx生成縮略圖到硬盤(pán)上的功能到這里就結(jié)束了

相關(guān)文章

  • nginx+lua單機(jī)上萬(wàn)并發(fā)的實(shí)現(xiàn)

    nginx+lua單機(jī)上萬(wàn)并發(fā)的實(shí)現(xiàn)

    nginx是我們最常用的服務(wù)器,常用于做內(nèi)容分發(fā)和反向代理,本文主要介紹了nginx+lua單機(jī)上萬(wàn)并發(fā)的實(shí)現(xiàn),有興趣的可以了解下
    2021-05-05
  • PHP(FastCGI)在Nginx的alias下出現(xiàn)404錯(cuò)誤的解決方法

    PHP(FastCGI)在Nginx的alias下出現(xiàn)404錯(cuò)誤的解決方法

    這篇文章主要介紹了PHP(FastCGI)在Nginx的alias下出現(xiàn)404錯(cuò)誤的解決方法,涉及nginx平臺(tái)的相關(guān)配置技巧,需要的朋友可以參考下
    2016-05-05
  • 詳解nginx平滑升級(jí)的過(guò)程

    詳解nginx平滑升級(jí)的過(guò)程

    這篇文章主要介紹了詳解nginx平滑升級(jí)的過(guò)程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • nginx訪問(wèn)控制的兩種方法

    nginx訪問(wèn)控制的兩種方法

    這篇文章主要介紹了關(guān)于nginx訪問(wèn)控制的兩種方法,一種是基于Basic Auth認(rèn)證,另一種是基于IP的訪問(wèn)控制,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-03-03
  • Nginx安裝完成沒(méi)有生成sbin目錄的解決方法

    Nginx安裝完成沒(méi)有生成sbin目錄的解決方法

    這篇文章主要介紹了Nginx安裝完成沒(méi)有生成sbin目錄的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Nginx1.21.6生產(chǎn)環(huán)境升級(jí)步驟

    Nginx1.21.6生產(chǎn)環(huán)境升級(jí)步驟

    這篇文章主要介紹了Nginx1.21.6生產(chǎn)環(huán)境升級(jí)步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • nginx安裝第三方模塊的方法

    nginx安裝第三方模塊的方法

    這篇文章主要介紹了nginx安裝第三方模塊的方法,包含在未安裝nginx的情況下安裝nginx第三方模塊和在已安裝nginx情況下安裝nginx第三方模塊,需要的朋友可以參考下
    2014-06-06
  • Nginx的正則表達(dá)式詳解

    Nginx的正則表達(dá)式詳解

    今天來(lái)聊一聊他的正則表達(dá)式的使用規(guī)則,我會(huì)簡(jiǎn)單的舉幾個(gè)例子然后進(jìn)行說(shuō)明講解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 詳解nginx同一端口監(jiān)聽(tīng)多個(gè)域名和同時(shí)監(jiān)聽(tīng)http與https

    詳解nginx同一端口監(jiān)聽(tīng)多個(gè)域名和同時(shí)監(jiān)聽(tīng)http與https

    這篇文章主要介紹了詳解nginx同一端口監(jiān)聽(tīng)多個(gè)域名和同時(shí)監(jiān)聽(tīng)http與https的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 阿里云Linux系統(tǒng)Nginx配置多個(gè)域名的方法詳解

    阿里云Linux系統(tǒng)Nginx配置多個(gè)域名的方法詳解

    本篇文章主要介紹了阿里云Linux系統(tǒng)Nginx配置多個(gè)域名的方法詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02

最新評(píng)論