利用Nginx反向代理功能自建CDN加速頁面服務(wù)
一般我們選用CDN加速服務(wù)會用到第三方CDN服務(wù),也有利用服務(wù)器自建CDN軟件工具。當(dāng)然,我們還可以用到Nginx Web反代的方式實現(xiàn)緩存加速頁面,實現(xiàn)CDN加速的方式。具體的操作如下。
第一、部署前的準(zhǔn)備
這里,我們需要準(zhǔn)備2臺或者以上的服務(wù)器。而且可以分布不同的地區(qū)。比如A和B,A在美國,使用WordPress,IP地址:1.2.3.4,域名綁定:www.dbjr.com.cn。B在日本,空白網(wǎng)站,IP地址:2.3.4.5,域名綁定:static.jb51.net。
網(wǎng)站主站架設(shè)在A服務(wù)器上(即所有網(wǎng)站內(nèi)容,包含動態(tài)文件、數(shù)據(jù)庫等),我們將在B站上架設(shè)CDN服務(wù)。
第二、程序安裝
由于A站上已經(jīng)將服務(wù)環(huán)境架設(shè)好,網(wǎng)站也已經(jīng)正常運行,同時也無需在A站上進行多余操作,故此,所有操作未進行說明均表示B站進行。
首先,自建CDN這里選擇的是ngx_cache_purge這一模塊,要運行這個模塊,就需要服務(wù)器上安裝有Nginx,若之前安裝過的,重新安裝一次,加上參數(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
因為各人需求不同,所以這里只是寫了ngx_cache_purge模塊,若有其他需求請自行參考nginx編譯參數(shù)
make && make install
驗證ngx_cache_purge安裝:
/usr/local/nginx/sbin/nginx -V
若出現(xiàn)了“–add-module=../ngx_cache_purge-2.3”字樣表示已經(jīng)安裝完成
Nginx配置:
打開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)站路徑
打開網(wǎng)站配置文件,在添加或修改如下內(nèi)容,將靜態(tài)文件進行緩存
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico|js|css)$ { proxy_pass http://www.dbjr.com.cn; proxy_redirect off; proxy_set_header Host www.dbjr.com.cn; 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)以后訪問static.jb51.net時,B站會先檢查本地是否有緩存,若緩存存在則直接展示,若不存在則會訪問www.dbjr.com.cn,將資源保存下來進行展示。
第三、網(wǎng)站程序配置
現(xiàn)在CDN架設(shè)好了,但是要怎樣使用到網(wǎng)站上呢?
主站所有靜態(tài)資源域名必須是static.jb51.net
static.jb51.net域名必須正確指向B站
WordPress替換法
如果網(wǎng)站使用的是WordPress程序,那可以很方便的對資源進行操作,其實也無需操作,就是把靜態(tài)資源域名進行更改即可,反正CDN會自動拉取資源到本地!
打開本站模板函數(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://www.dbjr.com.cn/wp-content/uploads/', ‘http://static.jb51.net/wp-content/uploads/', $html); } }
若本站安裝有緩存插件,將緩存先清空一次,然后嘗試打開網(wǎng)站,若uploads目錄下所有靜態(tài)資源均指向static.jb51.net域名,且訪問正常,說明已經(jīng)安裝正常。
以上就是利用Nginx反向代理功能自建CDN加速頁面服務(wù)的詳細(xì)內(nèi)容,更多關(guān)于利用Nginx反向代理功能自建CDN加速頁面服務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Nginx location 和 proxy_pass路徑配置問題小結(jié)
本文是基于 location 的匹配末尾是否配置 / 和 proxy_pass 末尾是否配置 / ,進行測試,完全還原了整個測試過程,本文給大家介紹Nginx location 基本配置及相關(guān)配置文件,感興趣的朋友跟隨小編一起看看吧2021-09-09Nginx服務(wù)器中為網(wǎng)站或目錄添加認(rèn)證密碼的配置詳解
這篇文章主要介紹了Nginx服務(wù)器中為網(wǎng)站或目錄添加認(rèn)證密碼的配置詳解,使用到了Apache的htpasswd工具,需要的朋友可以參考下2016-01-01windows下nginx+tomcat配置負(fù)載均衡的方法
這篇文章主要介紹了windows下nginx+tomcat配置負(fù)載均衡的方法,需要的朋友可以參考下2016-09-09Linux中Nginx的防盜鏈和優(yōu)化的實現(xiàn)代碼
今天是周末小編在值班哈,很開森,工作使我快樂,本文重點給大家介紹Linux中Nginx的防盜鏈和優(yōu)化問題及實現(xiàn)代碼,需要的朋友跟隨小編一起看看吧2021-06-06