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 可以用於部分頁面不快取