我在訪問時(shí)光網(wǎng)、網(wǎng)易云音樂等網(wǎng)站時(shí),發(fā)現(xiàn)將它們頁面中的一些圖片URL修改一下就可以得到不同尺寸的圖片,于是思考了其實(shí)現(xiàn)方案,我的思路是:URL Rewrite + 實(shí)時(shí)處理 + 緩存
,對用戶請求的URL進(jìn)行重寫,然后利用圖片處理類庫對圖片進(jìn)行處理,接著緩存該尺寸圖片并輸出到瀏覽器。使用PHP和Node.js實(shí)現(xiàn)了一遍,基本達(dá)到了需要的效果。
1、Nginx+Node.js(express)實(shí)現(xiàn)
URL重寫
這里Nginx主要是做一個(gè)URL重寫和反向代理的功能,配置如下所示:
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; }
這里說明一下:Nginx監(jiān)聽本地的80端口,Node.js監(jiān)聽的是3000端口。當(dāng)用戶訪問類似
網(wǎng)友評論