摘要:壓縮概述網頁在服務器端經過了或者其他格式的壓縮后的輸出明顯減少了字節當訪問過百萬時這些減少的字節就會變為客觀的流量給節約下來從而減輕服務器的壓力以及網頁的訪問速度原理客戶端在向服務端發送請求時在請求頭中有一個的頭信息該頭信息告知服務器端
gzip壓縮 概述
網頁在服務器端經過了gzip或者其他格式的壓縮后的輸出明顯減少了content-length字節,當訪問過百萬時,這些減少的字節就會變為客觀的流量給節約下來;從而減輕服務器的壓力以及網頁的訪問速度;
原理客戶端在向服務端發送http請求時,在請求頭中有一個Accept-Encoding的頭信息,該頭信息告知服務器端本客服端能接收什么樣的壓縮文件,如果服務器端配置了壓縮的需求,就會返回相應的壓縮文件,然后瀏覽器再解碼呈現出來;我們在做采集時,需要采集的是未壓縮的文件,所以在http請求頭上不要包含Accept-Encoding的鍵;
通過這個原理在php給app寫接口時,可做一些安全方面的處理,具體如何實現,期待和有經驗的app開發人員一起研究.Nginx的壓縮
在http段添加如下配置
gzip on|off; #是否開啟gzip gzip_buffers 32 4K| 16 8K #緩沖(壓縮在內存中緩沖幾塊? 每塊多大?) gzip_comp_level [1-9] #推薦6 壓縮級別(級別越高,壓的越小,越浪費CPU計算資源) gzip_disable #正則匹配UA 什么樣的Uri不進行gzip gzip_min_length 200 # 開始壓縮的最小長度(再小就不要壓縮了,意義不在) gzip_http_version 1.0|1.1 # 開始壓縮的http協議版本(可以不設置,目前幾乎全是1.1協議) gzip_proxied # 設置請求者代理服務器,該如何緩存內容 gzip_types text/plain application/xml # 對哪些類型的文件用壓縮 如txt,xml,html ,css gzip_vary on|off # 是否傳輸gzip壓縮標志
Example
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6].";
注意:
圖片/mp3這樣的二進制文件,不必壓縮,因為壓縮率比較小, 比如100->80字節,而且壓縮也是耗費CPU資源的.
比較小的文件不必壓縮,意義不存在.
expire瀏覽器緩存設置 概述這里的緩存控制主要是針對圖片,css,js等變化周期較短的靜態文件;以圖片為例,當我們第一次訪問這張圖片時,服務器返回的是200,同時在響應頭返回了兩個鍵,Etag:即該文件的"指紋"(唯一標識)以及Last-Modified:"文件的修改時間";此時瀏覽器,以及其他的緩存服務器就會把這張圖片給緩存起來;再次請求這張圖片時,請求頭增加了兩個鍵值,If-Modified-Since:上次發生改變的時間;If-None-Match:上次文件本身的Etag值,服務器根據這兩個鍵值判斷其Etag和Last-Modified,如果都沒發生改變就不返回這張圖片,只返回一個304的狀態碼,服務器接收到這個304的狀態碼就會自己去從緩存里面找這個被緩存的圖片;
這樣就減少了服務器的帶寬壓力以及提升了網站訪問速度;
在location段以及if段可以設置
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*.(js|css)?$ { expires 12h; }
格式
expires 30s; expires 30m; expires 2h; expires 30d;
注意:服務器的日期要準確,如果服務器的日期落后于實際日期,可能導致緩存失效
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/40501.html
摘要:使用了多路復用技術的,就成了并發事件驅動的服務器。進程主要負責收集分發請求。同時進程也負責監控的狀態,保證高可靠性進程一般設置為跟核心數一致。所以才使得支持更高的并發。配置調優調整指要生成的數量最佳實踐是每個運行個工作進程。 Nginx 是如何實現高并發的? Nginx 采用的是多進程(單線程) & 多路IO復用模型。使用了 I/O 多路復用技術的 Nginx,就成了并發事件驅動的服務...
摘要:業務和架構不分家,架構是建立在對業務的理解之上的。主鍵最好保持順序遞增,隨機主鍵會導致聚簇索引樹頻繁分裂,隨機增多,數據離散,性能下降。沒有索引的更新,可能會導致全表數據都被鎖住。 本博客并非全部原創,其實是一個知識的歸納和匯總,里面我引用了很多網上、書上的內容。也給出了相關的鏈接。 本文涉及的知識點比較多,大家可以根據關鍵字去搜索相關的內容和購買相應的書籍進行系統的學習。不對的地方...
1. 知識體系 1.1從輸入 URL 到頁面加載完成,發生了什么? 首先我們需要通過 DNS(域名解析系統)將 URL 解析為對應的 IP 地址,然后與這個 IP 地址確定的那臺服務器建立起 TCP 網絡連接,隨后我們向服務端拋出我們的 HTTP 請求,服務端處理完我們的請求之后,把目標數據放在 HTTP 響應里返回給客戶端,拿到響應數據的瀏覽器就可以開始走一個渲染的流程。渲染完畢,頁面便呈現給了...
閱讀 1256·2023-04-26 02:38
閱讀 943·2023-04-25 20:13
閱讀 3597·2021-11-19 11:31
閱讀 2403·2019-08-30 15:55
閱讀 2730·2019-08-30 14:11
閱讀 3166·2019-08-30 13:45
閱讀 1382·2019-08-29 18:41
閱讀 1155·2019-08-29 16:18