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