利用Nginx反向代理功能自建CDN加速頁(yè)面服務(wù)
一般我們選用CDN加速服務(wù)會(huì)用到第三方CDN服務(wù),也有利用服務(wù)器自建CDN軟件工具。當(dāng)然,我們還可以用到Nginx Web反代的方式實(shí)現(xiàn)緩存加速頁(yè)面,實(shí)現(xiàn)CDN加速的方式。具體的操作如下。
第一、部署前的準(zhǔn)備
這里,我們需要準(zhǔn)備2臺(tái)或者以上的服務(wù)器。而且可以分布不同的地區(qū)。比如A和B,A在美國(guó),使用WordPress,IP地址:1.2.3.4,域名綁定:m.fzitv.net。B在日本,空白網(wǎng)站,IP地址:2.3.4.5,域名綁定:static.jb51.net。
網(wǎng)站主站架設(shè)在A服務(wù)器上(即所有網(wǎng)站內(nèi)容,包含動(dòng)態(tài)文件、數(shù)據(jù)庫(kù)等),我們將在B站上架設(shè)CDN服務(wù)。
第二、程序安裝
由于A站上已經(jīng)將服務(wù)環(huán)境架設(shè)好,網(wǎng)站也已經(jīng)正常運(yùn)行,同時(shí)也無(wú)需在A站上進(jìn)行多余操作,故此,所有操作未進(jìn)行說(shuō)明均表示B站進(jìn)行。
首先,自建CDN這里選擇的是ngx_cache_purge這一模塊,要運(yùn)行這個(gè)模塊,就需要服務(wù)器上安裝有Nginx,若之前安裝過(guò)的,重新安裝一次,加上參數(shù)即可。
下載相關(guān)軟件:
wget http://nginx.org/download/nginx-1.10.3.tar.gz wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz tar zxf nginx-1.10.3 tar zxf ngx_cache_purge-2.3.tar.gz
安裝Nginx:
cd nginx-1.10.3 ./configure –prefix=/usr/local/nginx –user=www –group=www –add-module=../ngx_cache_purge-2.3
因?yàn)楦魅诵枨蟛煌?,所以這里只是寫(xiě)了ngx_cache_purge模塊,若有其他需求請(qǐng)自行參考nginx編譯參數(shù)
make && make install
驗(yàn)證ngx_cache_purge安裝:
/usr/local/nginx/sbin/nginx -V
若出現(xiàn)了“–add-module=../ngx_cache_purge-2.3”字樣表示已經(jīng)安裝完成
Nginx配置:
打開(kāi)nginx.conf文件,在HTTP區(qū)域中添加如下內(nèi)容
proxy_connect_timeout 5; proxy_read_timeout 60; proxy_send_timeout 5; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; proxy_cache_path /data/wwwroot/static.jb51.net levels=1:2 keys_zone=cache_one:200m inactive=30d max_size=5g; proxy_temp_path /data/wwwroot/static.jb51.net/tmp;
注意上面的“/data/wwwroot/static.jb51.net”,這是B站的網(wǎng)站路徑
打開(kāi)網(wǎng)站配置文件,在添加或修改如下內(nèi)容,將靜態(tài)文件進(jìn)行緩存
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico|js|css)$ {
proxy_pass http://m.fzitv.net;
proxy_redirect off;
proxy_set_header Host m.fzitv.net;
proxy_cache cache_one;
proxy_cache_valid 200 302 304 365d;
proxy_cache_valid 301 1d;
proxy_cache_valid any 1m;
add_header Images-Cache “$upstream_cache_status from $host”;
add_header Pragma public;
add_header Cache-Control “public, must-revalidate, proxy-revalidate”;
access_log off;
log_not_found off;
expires max;
}最后重新載入下Nginx,當(dāng)以后訪問(wèn)static.jb51.net時(shí),B站會(huì)先檢查本地是否有緩存,若緩存存在則直接展示,若不存在則會(huì)訪問(wèn)m.fzitv.net,將資源保存下來(lái)進(jìn)行展示。
第三、網(wǎng)站程序配置
現(xiàn)在CDN架設(shè)好了,但是要怎樣使用到網(wǎng)站上呢?
主站所有靜態(tài)資源域名必須是static.jb51.net
static.jb51.net域名必須正確指向B站
WordPress替換法
如果網(wǎng)站使用的是WordPress程序,那可以很方便的對(duì)資源進(jìn)行操作,其實(shí)也無(wú)需操作,就是把靜態(tài)資源域名進(jìn)行更改即可,反正CDN會(huì)自動(dòng)拉取資源到本地!
打開(kāi)本站模板函數(shù)文件“function.php”,在其中添加如下代碼
if ( !is_admin() ) {
add_action(‘wp_loaded','lovekk_ob_start');
function lovekk_ob_start() {
ob_start(‘lovekk_cdn_replace');
}
function lovekk_cdn_replace($html) {
return str_replace(‘http://m.fzitv.net/wp-content/uploads/', ‘http://static.jb51.net/wp-content/uploads/', $html);
}
}若本站安裝有緩存插件,將緩存先清空一次,然后嘗試打開(kāi)網(wǎng)站,若uploads目錄下所有靜態(tài)資源均指向static.jb51.net域名,且訪問(wèn)正常,說(shuō)明已經(jīng)安裝正常。
以上就是利用Nginx反向代理功能自建CDN加速頁(yè)面服務(wù)的詳細(xì)內(nèi)容,更多關(guān)于利用Nginx反向代理功能自建CDN加速頁(yè)面服務(wù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
nginx實(shí)現(xiàn)透轉(zhuǎn)的方法步驟
本文主要介紹了nginx實(shí)現(xiàn)透轉(zhuǎn)的方法步驟,實(shí)現(xiàn)HTTP與HTTPS請(qǐng)求的客戶(hù)端IP地址透?jìng)?文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05
nginx+tomcat實(shí)現(xiàn)負(fù)載均衡,使用redis session共享
這篇文章主要介紹了nginx tomcat負(fù)載均衡 使用redis session共享,有興趣的同學(xué)可以了解一下。2016-12-12
nginx訪問(wèn)控制的實(shí)現(xiàn)示例
這篇文章主要介紹了nginx訪問(wèn)控制的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
nginx+apache+mysql+php+memcached+squid搭建集群web環(huán)境
當(dāng)前,LAMP開(kāi)發(fā)模式是WEB開(kāi)發(fā)的首選,如何搭建一個(gè)高效、可靠、穩(wěn)定的WEB服務(wù)器一直是個(gè)熱門(mén)主題,本文就是這個(gè)主題的一次嘗試。2011-03-03
nginx設(shè)置上傳目錄無(wú)執(zhí)行權(quán)限的方法
在windows+iis下,可以設(shè)置上傳目錄,類(lèi)似:upload,uploadfile,attachments,這樣的目錄下面無(wú)腳本執(zhí)行權(quán)限,從而防止非法用戶(hù)上傳腳本得到webshell2010-11-11

