網(wǎng)站性能優(yōu)化之Apache調(diào)整_負(fù)載集群教程
1. 開啟Keep-Alive
開啟Keep-Alive后,可以保證瀏覽器和服務(wù)器之間的連接持久存在,這樣如果同一個域名請求很多資源的情況下可以省去建立連接的時間和資源消耗。所 以對于靜態(tài)服務(wù)器來說,由于一個域名會請求N多資源,比較宜開啟Keep-Alive,但是對于動態(tài)服務(wù)器,不宜開啟Keep-Alive,因?yàn)檫@樣會造 成很多的空閑進(jìn)程,浪費(fèi)內(nèi)存空間。
配置:
KeepAlive On #開啟KeepAlive
KeepAliveTimeout 5 #保持連接5秒
2. HTTP緩存設(shè)置
當(dāng)直接在瀏覽器中輸入一個URL,或者點(diǎn)擊一個鏈接的時候,那么瀏覽器緩存就會起作用,如果緩存沒有過期,那么瀏覽器會從本地讀取資源,不會發(fā)起HTTP請求,如果緩存過期,那么瀏覽器會發(fā)起新的瀏覽器請求。按ctrl+F5,瀏覽器會情況本地緩存,重新請求資源。
Expires是HTTP/1.0的緩存頭, Cache-Control: max-age 是HTTP/1.1是用來進(jìn)行HTTP緩存的頭。Expires指定了資源過期的絕對時間,GMT格式,Cache-Control: max-age指定了資源過期的相對時間,單位是秒。在支持HTTP/1.1的瀏覽器上,如果發(fā)送兩個頭,那么Cache-Control: max-age會覆蓋掉Expires;在支持HTTP/1.0的瀏覽器上,即使發(fā)送了兩個頭,但是只有Expires會起作用,所以為了兼容老的瀏覽 器,還是要同時發(fā)送這兩個頭。設(shè)置HTTP緩存,需要安裝expires_module,其會發(fā)送Expires和Cache-Control: max-age兩個HTTP頭。
配置:
ExpiresActive On
ExpiresByType application/x-javascript "access plus 30 days"
ExpiresByType text/css "access plus 30 days"
ExpiresByType image/gif "access plus 30 days"
ExpiresByType image/jpeg "access plus 30 days"
ExpiresByType image/png "access plus 30 days"
ExpiresByType application/x-javascript “access plus 30 days” 表示對js資源設(shè)置Expires和Cache-Control: max-age頭,其中Expires的值是以客戶端訪問資源的時間為基準(zhǔn)的后30天,Cache-Control: max-age的值是3600x24x30秒。
ExpiresByType application/x-javascript “modification plus 30 days”和上面效果一樣,只是Expires的時間是以資源最后修改的時間作為計(jì)算的基準(zhǔn)。
3. 開啟Gzip壓縮,并設(shè)置vary頭
Gzip會對文本資源進(jìn)行壓縮,一般能節(jié)省40%的大小,二進(jìn)制內(nèi)容不需要開啟Gzip壓縮,因?yàn)檫@些文件是已經(jīng)壓縮過的,如果再進(jìn)行Gzip壓縮反而會 增加其大小。靜態(tài)資源一般都會在代理服務(wù)器上進(jìn)行緩存,而有的瀏覽器支持Gzip,但是也有不支持Gzip的老舊瀏覽器,所以需要設(shè)置Vary: Accept-Encoding 頭,這個頭告訴代理緩存服務(wù)器要對資源緩存兩份,一份壓縮過的,一份沒有壓縮過,然后根據(jù)瀏覽器發(fā)送的Accept-Encoding頭來返回壓縮或者不 壓縮的內(nèi)容。設(shè)置Gzip壓縮,需要安裝deflate_module。
配置:
#對js,html,xml,css,普通文本開啟Gzip壓縮
AddOutputFilterByType DEFLATE application/x-javascript text/html text/plain text/xml text/css
4. 關(guān)掉ETag
Last-Modified與ETag是同樣的功能,都是用來標(biāo)識一個資源是否更改過,Last-Modified的值是資源的時間戳,如果按F5或者刷 新按鈕則If-Modified-Since頭會帶著時間戳發(fā)送到服務(wù)器,如果服務(wù)器上資源的最后修改時間<=這個時間,那么返回304 Not Modified,否則返回200 OK 以及新的資源;ETag的值是通過資源的信息(一般為inode,大小,時間戳)而計(jì)算出來的一個字符串,如果按F5或者刷新按鈕則If-None- Match頭會帶著這個值發(fā)送到服務(wù)器,服務(wù)器用這個值來和當(dāng)前資源的值進(jìn)行比對,如果相等,則返回304 Not Modified,否則返回200 OK 以及新的資源。默認(rèn)情況下Apache對靜態(tài)資源會發(fā)送Last-Modified和ETage,但是由于ETage的計(jì)算會耗費(fèi)服務(wù)器的CPU資源,所 以選擇關(guān)掉,只開啟Last-Modified。
配置:
FileETag None
Header unsets ETag
- 介紹服務(wù)器安全熱點(diǎn)12項(xiàng)技術(shù)
- Web網(wǎng)關(guān)的安全和性能
- 避免危害DNS服務(wù)器安全部署的七宗罪
- web中緩存的使用方法
- 服務(wù)器管理最容易犯的十大錯誤
- 自定義FTP 體驗(yàn)極速的下載快感
- RAID0、RAID1、RAID5磁盤陣列的區(qū)別
- 圖文詳解服務(wù)器返回的各狀態(tài)碼
- 利用OpenIPMI監(jiān)控服務(wù)器溫度
- DNS高級服務(wù)器選項(xiàng)
- apache防盜鏈的兩種實(shí)現(xiàn)方法
- 在多臺服務(wù)器上簡單實(shí)現(xiàn)Redis的數(shù)據(jù)主從復(fù)制
- 相關(guān)鏈接:
- 教程說明:
負(fù)載集群教程-網(wǎng)站性能優(yōu)化之Apache調(diào)整。