国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

Nginx配合php實現生成實時縮略圖功能

2024-08-30 12:26:51
字體:
來源:轉載
供稿:網友

在做自動靜態化的時候,突然想到下面這個場景,也給出了解決方法。親,真的很實用,耐心看下去。

當我從后臺上傳一個截圖之后,480*800的截圖之后,當時就沒有壓縮出320*480的小縮略圖。好吧,服務器輪詢一下,全部產生出320*480的圖片。

那下一次呢,又有160*240的圖片了,又輪詢嗎,費時費力,還不能馬上就得到小圖。這個時候,我們就要開始抱怨了,怎么要這么多種圖片啊,設計師,你就不能老早就想好要哪些圖片么?

其實,nginx是一個強大的反向代理服務器,通過它的rewrite模塊,我們可以實現自動產生縮略圖,也不用輪詢數據庫了。產品設計,要什么尺寸的,客戶端直接通過某種規則訪問就是了,我馬上就產生給你。
而且,后臺上傳的時候,只要保存一張最大的圖片就ok了。

這樣的話,需要其他尺寸的圖片,僅僅修改客戶端的訪問方式即可。

Nginx配置:

代碼如下:
#假設,服務器上面有一個文件:abc.jpg,通過http://filefs.domain.com/file/abc.jpg能夠訪問到原圖。其#實一般的,我們在數據庫里面也就保存了“/file/abc.jpg”這部分內容。
#現在,我們要實現通過http://filefs.domain.com/file/abc.jpg.w320.jpg由服務器自動產生#abc.jpg.w320.jpg(w320,320px的寬度)這個縮略圖。并返回圖片數據。
#要滿足以下兩個條件:
#   1.如果abc.jpg.w320.jpg存在,則不重新產生圖片
#   2.如果不存在,則在同一次的請求中,返回圖片數據,和保存圖片文件到服務器。
 
 
server {
    listen       80;
    server_name  filefs.domain.com;
    
    root /var/www/http/filefs.domain.com;
    location / {
        index  index.html index.htm;
    }
    
    location ~ /.(png|jpg|jpeg|gif)$ {
        #如果文件不存在,則rewrite到產生圖片的腳本文件autoimg.php
        if (!-f $request_filename) {
            rewrite ^/.*$ /autoimg.php;
            expires max;
        }
        #如果文件存在,則設置過期時間,關閉訪問日志
        if ( -f $request_filename ) {
            expires max;
            access_log off;
        }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奉节县| 巍山| 汾阳市| 洪湖市| 博乐市| 呼和浩特市| 乐都县| 晋城| 闵行区| 玉龙| 齐河县| 浦县| 临邑县| 南靖县| 西丰县| 定远县| 万安县| 荔浦县| 延津县| 牡丹江市| 泊头市| 海盐县| 闵行区| 凯里市| 磐石市| 博罗县| 舟山市| 桐乡市| 黄陵县| 安福县| 济宁市| 徐水县| 正蓝旗| 北辰区| 广平县| 东乌珠穆沁旗| 都匀市| 竹北市| 易门县| 娄烦县| 陆丰市|