1. 程式人生 > >nginx相關(靜態資源、代理服務、負載均衡、動態快取)

nginx相關(靜態資源、代理服務、負載均衡、動態快取)

靜態資源

第一:tcp_nopush on;

作用:sendfile開啟的情況下,提高網路包的傳輸效率,預設是關閉的

打包合併傳送。

第二:tcp_nodelay on;

作用:keepalive連線下,提高網路包的傳輸實時性

第三:gzip on;

作用:壓縮傳輸

第四:gzip_comp_level 1;

作用:壓縮級別

第五:gzip_http_version 1.1;

目前主流版本1.1

第六:gzip_typs xxxxxx

需要壓縮的格式檔案

第七:gzip_static on;

作用:預讀gzip功能,就是請求伺服器上壓縮的檔案,返回給客戶端是解壓後的檔案,用於下載

瀏覽器的緩衝機制

配置緩衝的過期時間:expires  24h;

從伺服器獲取,返回200,從緩衝獲取,返回304

跨域訪問開啟

add_header name value;

如下兩個

add_header   Access_Control_Allow_Origin www.baidu.com;

add_header   Access_Control_Allow_Methods GET,POST,PUT,DELETE,OPTIONS;

防盜鏈

valid_referers none(允許沒有上次地址資訊refer訪問)blocked(允許沒有帶http訪問)116.62.100.100; 

if($invalid_referer){

return 403

}

代理服務

正向代理,為客戶端服務

http_x_forwarded_for !~*ip(這個ip不允許訪問)

反向代理,為服務端服務

proxy_pass url(到外網訪問不到的地址)

緩衝區

proxy_buffering on;

重定向

proxy_rediretdefault;

頭資訊擴充套件

proxy_set_header;

超時

proxy_connect_timeout 60s;

負載均衡

7層

nginx 的 upstream預設是以輪詢的方式實現負載均衡,這種方式中,每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。

另外一種方式是ip_hash:每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題。 

負載均衡配置示例:

upstream backend {

             #ip_hash;#有缺陷,如果客戶端使用代理,如vpn,可以固定url到同一臺伺服器

      #hash $request_url

             server 192.168.1.251;

             server 192.168.1.252;

             server 192.168.1.247;

         }

server {

        listen       80;

        server_name  trffweb;

        location / {

             #反向代理的地址

             proxy_pass http://backend;     

        }

}

動態快取

proxy_cache

proxy_no_chche 可以用於部分頁面不快取