我在訪(fǎng)問(wèn)時(shí)光網(wǎng)、網(wǎng)易云音樂(lè)等網(wǎng)站時(shí),發(fā)現(xiàn)將它們頁(yè)面中的一些圖片URL修改一下就可以得到不同尺寸的圖片,于是思考了其實(shí)現(xiàn)方案,我的思路是:URL Rewrite + 實(shí)時(shí)處理 + 緩存,對(duì)用戶(hù)請(qǐng)求的URL進(jìn)行重寫(xiě),然后利用圖片處理類(lèi)庫(kù)對(duì)圖片進(jìn)行處理,接著緩存該尺寸圖片并輸出到瀏覽器。使用PHP和Node.js實(shí)現(xiàn)了一遍,基本達(dá)到了需要的效果。

1、Nginx+Node.js(express)實(shí)現(xiàn)

URL重寫(xiě)
這里Nginx主要是做一個(gè)URL重寫(xiě)和反向代理的功能,配置如下所示:

location ~ /upload/{
    if ($request_uri ~* ^/upload/(.+)_(\d+)x(\d+)\.(jpg|png|gif)$) {
        set $src $1;
        set $w $2;
        set $h $3;
        set $t $4;
        rewrite . /resize?src=$src&w=$w&h=$h&type=$t break;
    }
    proxy_pass        http://127.0.0.1:3000;
}

這里說(shuō)明一下:Nginx監(jiān)聽(tīng)本地的80端口,Node.js監(jiān)聽(tīng)的是3000端口。當(dāng)用戶(hù)訪(fǎng)問(wèn)類(lèi)似

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式