nginx反向代理實現cdn的幾個例子解析

至於怎麼安裝nginx我很少說,你們看網上的資料應該就沒問題了。
首先aaa.com是瀏覽者訪問的域名,web.aaa.com:88是指被訪問的真實網站所在域名。
1.來看看大多數狀況:
server{
    listen          80;
    server_name   aaa.com;
    location / {
        proxy_pass              http://web.aaa.com:88;
        proxy_redirect          off;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}
這種狀況的實用範圍很廣但也有它的侷限性,通常用來創建鏡像站點,固然這沒有任何意義。
2.高級一點的,爲何說高級呢?由於網上這種方法介紹的不多:
 server{
    listen          80;
    server_name   aaa.com;
    location / {
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   Host aaa.com; #定義主機頭,若是目標站點已經綁定供瀏覽的域名則使用$host
    proxy_pass         http://web.aaa.com:88; #被代理網站的IP地址
    proxy_set_header   Accept-Encoding "";
        }
}
這樣設置與第一種有什麼區別呢?第一種方法返回給後端服務器的是web.aaa.com的主機頭地址,而這種方法返回給服務器的是aaa.com的主機頭。均可以用來實現端口轉換或web端口穿透。
3.假如我國外有一個網站ip:1.1.1.1用域名www.aaa.com訪問,我在國內有一臺服務器ip:2.2.2.2想用來緩存這個網站,加上智能dns實現簡單的cdn效果如何設置呢?
首先設置智能dns國外線路解析到國外的網站ip:1.1.1.1,國內線路解析到國內緩存服務器ip:2.2.2.2,那麼配置代碼是:
 server{
    listen          80;
    server_name   www.aaa.com;
    location / {
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   Host www.aaa.com; #定義主機頭,若是目標站點已經綁定供瀏覽的域名則使用$host
    proxy_pass         http://2.2.2.2; #被代理網站的IP地址
    proxy_set_header   Accept-Encoding "";
        }
}
但以上配置還沒開啓緩存功能,如下是開緩存,在配置文件中加入以下所示的內容:
http {
 proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:10m inactive=24h max_size=1g;
 #設置緩存目錄,緩存週期,緩存大小等。
 server {
 location / {
 proxy_pass http://1.1.1.1; #被緩存服務器ip
 proxy_set_header Host $host; #定義主機頭,可用實際網址替換$host
 proxy_cache STATIC;
 proxy_cache_valid 200 1d; #緩存狀態200 時間1天
 proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
}
 }
}nginx

相關文章
相關標籤/搜索