1. linux為什麼要用keepalived,nginx,負載均衡,動靜分離這些技術
假如一個機器只能1萬個人同時訪問,那麼這個時候有100萬人來訪問,你就得解決啊
怎麼解決呢?
加機器加帶寬
那怎樣讓他們訪問量均衡,避免個別機器壓力過大宕機呢?
負載均衡,動靜分離啊。。
2. Wordpress插件過多很臃腫,怎麼優化
緩存就指很多方便了,比如CDN緩存、靜態緩存、資料庫緩存、瀏覽器緩存等等。
1、CDN緩存:CDN的話最好是備案了再起飛,因為大多數沒備案的CDN都是給美國節點,而很多人是香港伺服器,那豈不是繞著太平洋跑?另外,CDN需要正確的配置(寫緩存規則)才能夠達到最好的效果。
2、靜態資料庫緩存:這個呢就不做推薦了,各有各的優點,自己比較效果吧。
3、瀏覽器緩存:這里呢說一下,如果長期更新瀏覽器緩存不要搞太久,很多人在網路雲加速設置個一年什麼的。ServiceWorker的話可以試試,離線打開是不是很裝逼呢
精簡是重要的
很多優秀的主題包含了很多不必要的功能,這時候就需要適當的精簡,畢竟只有骨骼輕才可以飛。
插件的話能用純代碼就用純代碼,插件什麼的卡死了。
一些CSS/JS文件要適當的壓縮合並,減少請求數,因為在HTTP/1.1中每個文件都要握手。
Gzip的話是有必要開的,大家也知道打包文件更小吧。
HTTP/2壓縮了請求頭,而且合並了請求,也就是說全站兩個域名只需兩次請求。
SPDY的話是谷歌的一個項目,本身是為了加快HTTP,不過現在的HTTP/2已經包含了其大部分功能,谷歌也要放棄該項目了
支持HTTP/2的CDN有CloudFlare、騰訊雲、又拍雲、上海雲盾、360網站衛士、魔門雲(非聯盟已回源,備案無國內,只有一兩個節點,巨坑!)等等。
定時清理WordPress的垃圾
壓縮合並讓請求更快
動靜分離讓靜態資源國內載入
如果你是國外主機的話,這個方法十分管用,可以把圖片、CSS、JS文件等託管到國內,不過如果有了HTTP/2的話建議不要搞,因為又要與一個域名握手了。
HTTP/2 SPDY大法好
InstantClick預載入
這個之前提到過,InstantClick當訪客滑鼠懸浮在a鏈接時,InstantClick會非同步請求這個頁面,當訪客點擊時,便瞬間切頁,有木有飛起?不過這玩意會扯出一大堆Bug,像統計、高亮什麼的都需要重載,萌新就別弄了,國內估計也就澤澤大佬的Yo模板自帶了,至於WordPress還沒見過,主題作者也不想撤扯出一大堆問題讓用戶天天問吧。
經常聽一群人說清電腦辣雞,windows有垃圾,WordPress當然也有,例如自動草稿這樣的肯定是不要的東西,這里呢推薦WP Clean Up插件,國人寫的。
希望可以幫助到你,望採納!
3. 網站靜態頁訪問正常,動態頁訪問非常慢
首先建議你使用nginx+tomcat實現動靜分離,然後再分析系統瓶頸。動態頁面較慢可能原因出現在資料庫操作上,可以調試一下資料庫的查詢時間會不會太長,有沒有使用連接池,mysql的連接數夠不夠,查詢完後連接有沒有關閉。
再看下tomcat內存、連接數有沒有調整過,這些連接數都開大後別忘了操作系統的文件連接數也相應開大。
最後再來看一下代碼實現有沒有問題,業務里sql查詢次數過多。
經過上面的優化後一般就能解決你的問題了,如果經過上面的優化後還有問題可以再聯系我,如何用工具去分析系統。
4. 蔚可雲的網頁加速和動態加速有什麼區別
空間總共分為三種:存儲類空間、靜態 CDN 空間、動態 CDN 空間。CDN做為內容分發技術,其核心原理就
空間總共分為三種:存儲類空間、靜態 CDN 空間、動態 CDN 空間。CDN做為內容分發技術,其核心原理就是將內容緩存到離用戶最近的節點上,實現內容分發加速,這里內容主要分為兩種,一種是靜態內容,一種是動態內容。首先,對靜態資源,CDN的加速效果是最好的,因為文件本身沒有變化,CDN會將文件緩存至節點,供用戶訪問。那如何判斷你的cdn加速是動態還是靜態?
如果源站有新的靜態資源產生,CDN也會及時去緩存這些資源,讓用戶無論是首次訪問,還是多次訪問,都可以快速獲得內容。從技術角度上來講:靜態資源就是當用戶多次訪問這個資源,資源的源代碼永遠不會改變的資源。動態資源是當用戶多次訪問這個資源,資源的源代碼可能會發送改變。
一、CDN加速作用於動態網站
兩種方案:
1、動靜分離 靜態的走類似http://hkt4.xx.com的獨立域名,動態的可以用動態加速
2、可以設置緩存設置規則,可看互聯數據CDN。
基本的原理如下:通過CDN眾多節點找到一條最快的路由,去源站點取數據從而達到對動態網站加速,再配合數據壓縮技術,可以將動態網站的訪問速度提高10倍甚至100倍。另外,動態網站的頁面內容一般是由靜態圖片和動態文本混合組成,而靜態圖片將會被緩存到CDN節點的硬碟上,也能提高動態網站的訪問速度。
動態內容並不是指網頁上簡單的 GIF 動態圖片或是 Flash 動畫,動態網站的概念現在還沒有統一標准,但都具備以下幾個基本特徵:
1. 交互性:網頁會根據用戶的要求和選擇而動態地改變和響應,瀏覽器作為客戶端,成為一個動態交流的橋梁。
2. 自動更新:即無須手動更新 HTML 文檔,便會自動生成新頁面。
3. 因時因人而變:即當不同時間、不同用戶訪問同一網址時會出現不同頁面。
如果待加速資源已經經過合理分類,只包括圖片、文檔、音道視頻等靜態文件,那麼優先選用靜態 CDN 空間,既可以獲得更快速的加速效果,也版可以獲得更多的功能支持。如果待加速的資源未合理分類,包括了靜態資源和動態資源,那麼需要使用動態 CDN 空間,一鍵實現權全站加速。
所以大家普遍認為動態網站不適合CDN加速,其實不是。動態網站一般是與用戶互動,數據要求實時性,比如論壇、搜索引擎、電子商務、股票行情。動態網站加速的基本原理:比如現在3個CDN節點:電信,聯通,移動,用戶網站放在電信。
聯通用戶訪問的時候,會通過昆明電信節點>>中轉節點電信>>中轉節點聯通 由於中轉電信和中轉聯通節點都是一個機房,這樣就解決了電信和聯通之間的瓶頸問題。
二、CDN加速作用於靜態網站
靜態內容:主要是指那些普通的文本文件或html或像html的沒有任何後台動作的jsp、asp、php、css、html、jpg、js頁面文件。
靜態內容一般客戶端發送請求到web伺服器,web伺服器從內存在取到相應的文件,返回給客戶端,客戶端解析並渲染顯示出來。
用戶使用某個域名來訪問靜態資源時,比如這個域名為「hkt4.com」,它對應一個CNAME,叫做「cdn.hkt4.com」,那麼普通DNS伺服器(區別CDN專用DNS伺服器)在解析「hkt4.com」時,會先解析成「cdn.hkt4.com」,普通DNS伺服器發現該域名對應的也是一個DNS伺服器,那麼會將域名解析工作轉交給該DNS伺服器,該DNS伺服器就是CDN專用DNS伺服器。CDN專用DNS伺服器對「cdn.hkt4.com」進行解析,然後依據伺服器上記錄的所有CDN。
伺服器地址信息,選出一個離用戶最近的一個CDN伺服器地址,並返回給用戶,用戶即可訪問離自己最近的一台CDN伺服器了。但目前來看,CDN在靜態資源的表現要遠優於對動態資源的加速,其主要原因還在於業務邏輯的源站化,如果邊緣計算的技術得到普及,那應該可以大大改善CDN對於動態資源的加速效果。
總的來講,CDN是可以實現網站的動靜態加速,主要方法是鏈路優化和緩存策略。判斷cdn加速是動態還是靜態不是最重要的,要想實現對該類網站的加速,必須能夠在實現靜態加速的同時,還可以做動態加速。但不建議使用「免費爬牆加速器」,互聯數據CDN用最穩定的CDN技術,不管網站是動態還是靜態,多能實時確保站點安全穩定運行。今天買一個月送一個月,一鍵接入,高防又高速,絕對是你關於免備案CDN中最好的選擇!
5. 對象存儲與SAN存儲和NAS存儲相比較有什麼優勢
對象存儲可以簡單理解為用來存儲圖片、音頻、視頻等非結構化數據的數據池。相對於主機伺服器,具有讀寫速度快,利於分享的特點。在這里給大家總結了這六點。
1、網站數據動靜分離,大幅提升網頁性能
一般情況下,我們都是建議使用主機伺服器和對象存儲分工合作的方式來存儲網站數據。主機伺服器主要負責存儲網站的動態數據,對象存儲則用來存儲網站的靜態文件。從而實現網站的動靜分離,當用戶訪問一個網站時,分別從主機伺服器和對象存儲的伺服器同步讀取數據,可以大幅的提升網頁性能。
2、單獨的文件管理界面,管理網站文件和本地電腦一樣方便
無論是騰訊雲、阿里雲、杉岩,對象存儲都有單獨的管理控制台,騰訊雲和阿里雲還有專門的電腦客戶端。你不必打開網站,就可以像使用網路雲盤一樣使用對象存儲來管理你的網站文件,除了上傳、下載、預覽等常用功能,還可以直接在對象存儲上進行圖片處理/媒體轉碼/數據分析等。
3、本質是」內置大容量硬碟的分布式伺服器「,同一個文件支持跨域共享
對象存儲的本質是「內置大容量硬碟的分布式伺服器」,對象存儲有自己的 CPU、內存、網路和磁碟系統,具備一定的智能,同一個對象存儲數據池可以新建不同的存儲桶(bucket),分別用來存儲不同網站的數據,彼此互不幹擾。而且同一個文件可以引用到不同的網站,可以有效的減少數據冗餘。
4、儲存節點多,支持跨地域實時同步,實現異地容災
假設你的圖片等數據存儲在你自己的伺服器上,只能通過定期數據備份的方式保護你的數據。數據量大的話,每次備份都需要大量的時間和佔用大量的磁碟空間,管理起來還不方便。
如果你的數據放置在對象存儲的數據池了,並與網站關聯。那麼靜態文件的備份就可以交給對象存儲。你只需要對網站少量的動態文件進行備份。省時省力。
比如我使用對象存儲,我在離我最近的節點【深圳】來存儲網站的圖片等靜態文件。但是考慮到極端情況,比如深圳節點由於突然停電,可能導致數據全部丟失。但如果之前我選擇了【杭州】作為第二個存儲節點,而且設置【深圳】節點的數據實時增量同步到【杭州】節點。那麼就算深圳節點的數據丟失了,但是我在杭州的數據還是可以使用。等到恢復供電,我再把數據從杭州節點同步回深圳節點就可以了。這就是我們說的異地容災。
5、成本低,資源彈性伸縮,按需付費
對象存儲不像伺服器的流量是固定的,包含在伺服器的費用裡面了。無論你用或不用,都是這么多。對象存儲可以是根據你的實際使用量進行計費。
6、節省伺服器空間
為什麼選擇將這一點放在最後說呢?因為現在伺服器的價格還算實惠,活動也比較多。大部分站長已經不存在伺服器空間不夠用的問題。而且對象存儲的出現也不是為了解決伺服器空間不夠用的問題。而是為了結合【塊存儲】、【文件存儲】各自的優點,從而實現高效的文件讀寫和分享。但是節省了伺服器空間還是不爭得事實,所以還是提一下吧。
6. 如何配置百度雲加速CDN緩存提高網站訪問速度
配置網路雲加速CDN緩存提高網站訪問速度
今天在登陸網路推廣後台後,發現優化建議裡面有一條提示,網站打開速度慢,達到7秒。想一下有多少網民願意等待7秒呢,沒耐心的都直接關閉你的網站。這個流失率不小啊。於是我就按照提示用網路的那個網站速度診斷工具,測試一下,網通和電信都顯示得分56:
然後我就想到了使用網路雲加速來提高一下網站的打開相應速度,因為以前在群里看到有人提到過這個東西,說是可以能提高網站的載入速度。而且還不止這些好處呢!下面我就以自己實際操作的步驟來給大家看看,一個網站如何加入網路雲加速。
1.需要登錄你的賬號
這里有兩種登錄方式,一個是用的網路賬號;另外一個就是使用網路推廣賬號,我這里就使用的網路推廣賬號進行登錄了。
進入我的網站進行相關設置
進入網站,然後添加網站。這里也有兩種接入方式:NS/CNAME方式,我自己使用的是NS驗證的方式,因為感覺這個方便點,能使用網路各機房節點的DNS高智能服務,同時也是網路推薦使用的接入方式。
然後進入下一步,配置子域名;這里默認的有一個MX記錄,還有一個A記錄;在這里需要檢查的是指向IP地址是否是你空間上的那個IP,接下來增加一個@記錄A指向的,這樣無論是帶三個W的還是頂級域名都會指向同一個頁面地址,方便搜索引擎統一認識啊!
其次,配置服務商設置。在這里需要去你的空間管理那邊,把原先的那個DNS地址修改一下,改為網路的ns1.bddns.cn和ns2.bddns.cn;這兩個缺一不可的。在這里我就演示一下新網的修改方法,登陸新網管理那邊,修改域名DNS地址,然後確定就修改成功了。修改成以後,回到網路雲剛才那個頁面,檢驗修改就大功告成了,是不是挺容易的呢?具體的可以看一下下面的圖;
設置好以後也可以看網站數據,看什麼節點啊,這些之類的。接入網路雲之後,還真發現網站打開速度快了。
如果你發現你的網站打開速度慢,想讓它變快點的話,那不妨來使用網路雲加速試試吧!
7. Linux運維如何從初級進階為高級
1、Linux基礎
剛開始階段需要熟悉Linux/Windows操作系統安裝,目錄結構、啟動流程等。
2、系統管理
主要學習Linux系統,生產環境中基本都在字元界面完成工作,所以要掌握常用的幾十個基本管理命令,包括用戶管理、磁碟分區、軟體包管理、文件許可權、文本處理、進程管理、性能分析工具等。
3、網路基礎
OSI和TCP/IP模型一定要熟悉。基本的交換機、路由器概念及實現原理要知道。
4、Shell腳本編程基礎
掌握Shell基本語法結構,能編寫簡單的腳本即可。
中級
1、網路服務
最常用的網路服務一定得會部署,比如vsftp、nfs、samba、bind、dhcp等。
代碼版本管理系統少不了,可以學習下主流的SVN和GIT,能部署和簡單使用就可以了。
經常在伺服器之間傳輸數據,所以要會使用:rsync和scp。
數據同步:inotify/sersync。
重復性完成一些工作,可寫成腳本定時去運行,所以得會配置Linux下的定時任務服務crond。
2、Web服務
每個公司基本都會有網站,能讓網站跑起來,就需要搭建Web服務平台了。
如果是用PHP語言開發的,通常搭建LAMP、LNMP網站平台,這是一個技術名片語合的拼寫,分開講就是得會部署Apache、Nginx、MySQL和PHP。
如果是JAVA語言開發的,通常使用Tomcat運行項目,為了提高訪問速度,可以使用Nginx反向代理Tomcat,Nginx處理靜態頁面,Tomcat處理動態頁面,實現動靜分離。
不是會部署這么簡單,還要知道HTTP協議工作原理、簡單的性能調優。
3、資料庫
資料庫選擇MySQL,它是世界上使用最為廣泛的開源資料庫。學它准沒錯!也要會一些簡單的SQL語句、用戶管理、常用存儲引擎、資料庫備份與恢復。
想要深入點,必須會主從復制、性能優化、主流集群方案:MHA、MGR等。NoSQL這么流行當然也少不了,學下Redis、MongoDB這兩個就好了。
4、安全
安全很重要,不要等到系統被入侵了,再做安全策略,此時已晚!所以,當一台伺服器上線後應馬上做安全訪問控制策略,比如使用iptables限制只允許信任源IP訪問,關閉一些無用的服務和埠等。
一些常見的攻擊類型一定得知道啊,否則怎麼對症下葯呢!比如CC、DDOS、ARP等。
5、監控系統
監控必不可少,是及時發現問題和追溯問題的救命稻草。可以選擇學習主流的Zabbix開源監控系統,功能豐富,能滿足基本的監控需求。監控點包括基本伺服器資源、介面狀態、服務性能、PV/UV、日誌等方面。
也可以弄個儀表盤展示幾個實時關鍵的數據,比如Grafana,會非常炫酷。
6、Shell腳本編程進階
Shell腳本是Linux自動完成工作的利器,必須得熟練編寫,所以得進一步學習函數、數組、信號、發郵件等。
文本處理三劍客(grep、sed、awk)得玩6啊,Linux下文本處理就指望它們了。
7、Python開發基礎
Shell腳本只能完成一些基本的任務,想要完成更復雜些的任務,比如調用API、多進程等。就需要學高級語言了。
Python是運維領域使用最多的語言,簡單易用,學它准沒錯!此階段掌握基礎就可以了,例如基本語法結構、文件對象操作、函數、迭代對象、異常處理、發郵件、資料庫編程等。
8. 新手問一個nginx動靜分離的問題,nginx相較於tomcat更適合處理靜態資源,他的原理是需要
需要將tomcat的靜態資源部署在nginx上
9. linux動靜分離什麼意思
proxy_pass屬於ngx_http_proxy_mole,次模塊可以將請求發送到一台伺服器上
proxy_pass放在location標簽中,可使用http
# location /poy{
# proxy_pass http://10.0.0.90;
# }
參數:
proxy_set_header,(當後端web伺服器上有多個虛擬主機,需要使用header來區分代理的主機名)獲取用戶的主機名或者真是IP,以及代理者的IP地址
server {
listen 80;
server_name www.linuea123.com;
location / {
root html;
index index.html index.htm;
proxy_pass http://backend;
proxy_set_header Host $host;
}
獲取用戶的真是iP,截獲客戶請求地址(nginx開啟即可,appche需要在LogFormat ""%{X-Forwareded-for}i添加)
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr獲取用戶的真是iP,截獲客戶請求地址
client_body_buffer_size:用於指導客戶端請求主題緩沖區大小,用戶訪問先保存到本地在傳遞給用戶
proxy_connect_timeout:表示與後端伺服器連接的超時時間,既發起握手等待響應的超時時間
proxy_send_timeoit:表示後端服務數據返回最短時間,超過則斷開
proxy_read_timeout:設置nginx從代理的後端伺服器獲取信息
proxy_buffer_size:設置緩存區大小,默認緩沖大小指令:proxy_buffers設置
# location /poy{
# proxy_pass http://10.0.0.90;
# proxy_set_header Host $host;
# }
proxy.conf如下:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
目錄和擴展名分離測試(還有瀏覽器的分離):
upstream jingtai {
server 10.0.1.10:80 weight=5 max_fails=10 fail_timeout=10s;
server 10.0.1.11:80 weight=5 max_fails=10 fail_timeout=10s;
}
upstream dongtai {
server 10.0.2.10:80 weight=5 max_fails=10 fail_timeout=10s;
server 10.0.2.11:80 weight=5 max_fails=10 fail_timeout=10s;
}
server {
listen 80;
server_name www.linuxea.com;
location / {
root html;
index index.html index.htm;
proxy_pass http://dongtai;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location /image/ {
proxy_pass http://jingtai;
###################擴展名分離#######################
#location ~ .* (gif|jpg|jpeg|png|bmp|swf|css|js)$ {
# proxy_pass http://jingtai;
# include proxy.conf;
#}
#location ~ .*. (php|php3|php5.3)$ {
# proxy_pass httpd://jingtai;
# include proxy.conf;
#}
#################if#################################
#if($request_uri ~* ".*.(jsp|jsp*|do|do*)$")
#{
# proxy_pas httpd://jingtai;
#}
##################android&iphone####################
# listen 80;
# server_name app.linuxea.com;
# location / {
# if (http_user_agent ~* "android")
# {
# proxy_pass http://android;
#}
# if (http_user_agent ~* "iphone")
#{
# proxu_pass http:/iphone;
#}
# proxy_pass http://pc;
# include proxy.conf;
#}
###################proxy如下##########################
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location /dongtai/ {
proxy_pass http://dongtai;
proxy_redirect off;
proxy_set_header Host $host;
p2roxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
proxy參數
proxy_set_header Host $host; 用戶請求的header傳遞給後端訪問
p2roxy_set_header X-Real-IP $remote_addr;接收客戶端ip,通過X-forwared給後端
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
代理和web超時響應參數如下:
proxy_connect_timeout 60;
proxy_send_timeout 30;
proxy_read_timeout 30;
內存和磁碟緩沖參數如下:
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
10. 如何解決百度雲加速緩存
一、動靜均緩存
網路雲加速更新後取消了簡單的勾選配置,其實對於我們來說真的說是福利了,作為首批先鋒測試團成員,下面我就簡單給大家設置一下!很多朋友解析到網路雲加速後就放一邊了,結果速度依然蝸牛,沒有感受到飛的快感,那麼今天我就要帶大家一起挖掘一下網路雲加速真正隱藏屬性。
其實,新版網路雲加速需要自己自定義規則來開啟緩存!下面簡單分享下動態網站在網路雲加速下開啟高速緩存的自定義規則,如圖點擊可進入設置
同樣的,根據前面的黑白名單規則,我們先定個調,一般網站應該是這樣的情況:前台都緩存、後台不緩存、個別頁面要緩存或不緩存。
先看下網路雲加速自定義規則的說明:
提示說明:
規則自定義指對「指定URL」進行頁面級規則定製(支持通配符*)。可對任意子域名、目錄、甚至單個URL進行針對性的加速緩存、安全防護等配置。列表中上下關系決定優先順序,靠上規則優先順序高。站長可以通過點擊「↑」調整優先順序。新增規則優先順序最低,將於30s內生效。
URL指定支持通配符*,例如
1) 對img.xiangta.cc進行特定設置,需增加URL: img.xiangta.cc/*
2) 對xiangta.cc/news/ 進行特定設置,需增加URL: xiangta.cc/news/*
3) 對xiangta.cc所有html頁面進行特定設置,需增加URL: xiangta.cc/*.html
支持通配,這就簡單了!不過免費版只支持3條規則,這個就需要你們合理斟酌一下了,不要看我可以設置10條,我是網路雲加速測試者,永久享用10條頂級以及很多功能。
優先順序從上往下依次降低,所以我們要保證不緩存的規則寫到最上面,才能不會緩存規則覆蓋。
根據我個人經驗,一般網站設置如下3條規則即可:
①、網站後台:xiangta.cc/admin/* 設置為不緩存或細致緩存
②、前端分頁:xiangta.cc/?page=* 設置為不緩存或細致緩存
③、網站前台:*xiangta.cc* 設置為前後通配都緩存,緩存一般為1天或者12小時,20小時,根據自己更新速度設置緩存
Ps:細致緩存其實就是只緩存靜態文件,其中緩存時間或有效期請自行設定即可,無需按圖照辦。另外由於新版網路雲加速現在不能對單個域名設置了,所以最後的緩存規則是前後通配,保證某些網站的二級靜態域名也緩存到位。另外,這只是我個人經驗推薦的配置,比如評論分頁就可以根據自己的需要設置為其他頁面,此處分享僅供參考!
這樣設置好了之後,網站前台刷幾下就可以看到效果了,當然還可以F12到network裡面去看header的緩存命中情況,這就不贅述了。注意本人網站是動態網站。
二、只緩存靜態
動靜都緩存可以解決國內低配VPS的2個尷尬:帶寬和負載。帶寬問題,國內普遍小水管就不用我多說了吧。負載問題則是動態網站一直以來的詬病,刷新快一點,CPU就滿了。
但是,有一些網站,本地已有緩存或者訪問流量並不高,他們不想開啟全站緩存,因為會帶來的各種數據不刷新問題。因此,我們如何既解決速度問題,又兼顧實時數據呢?
當然,開啟CDN不進行整站緩存設置的話,大部分CDN會默認緩存靜態文件,基本滿足以上需求。但是某些CDN有個坑爹的規則:他會和諧某些關鍵詞,訪問有這些關鍵詞的頁面就提示違規並不顯示。
如何解決這個問題?很簡單,通過域名做動靜分離即可。
將靜態鏈接替換為二級域名,並開啟CDN緩存。主域名則不走CDN或走CDN但不開啟緩存。
將靜態鏈接替換為二級域名應該不用我多說了吧?
可當然我個人網站的文件都是分離的。
主域名不走CDN也很簡單,直接在解析時不開啟緩存即可,也就是直接回源:
如果擔心暴露IP,如果是阿里雲ECS,你還可以CNAME到阿里雲的WAF上:
走CDN開啟緩存和走CDN禁止緩存應該也不用我多說了,上文都有分享規則。
如上設置後,你的網站的速度也會很快,當然前提是你的動態部分不卡才行。如果網站還是比較卡,但是你有不想開啟純靜態導致數據不刷新,那麼
①、如果是獨立主機,可以考慮開啟redis或opcache等php動態緩存
②、如果是虛擬主機,可以安裝 DB Cache Reloaded Fix這類數據緩存插件
當然,如果你覺得還是不夠快,那麼心系與她一樣,開啟Nginx的fastcgi緩存!
在這里我推薦一下文件分流存儲服務商,又拍雲價格便宜而且效果很明顯,節點我就不多說了,自己ping一下就知道了,配合著網路雲加速,分分鍾讓你網站秒殺市面上20M帶寬的VPS。
三、總結下區別
方案一 和 方案二 到底有什麼區別呢?
方案一:是將動態和靜態都強制緩存到CDN,這樣就算本地不開啟任何緩存,用戶的訪問速度也是杠杠的。如果想要給搜索引擎蜘蛛一樣的速度,那麼本地最好也開啟一下靜態緩存。
方案二:則是只緩存靜態數據,動態數據依然請求到源伺服器。這樣做的好處是既解決了帶寬尷尬,又解決了前台數據不能實時刷新的問題。因為占帶寬的主要是靜態文件,而非html代碼。我們將大體積的靜態文件託管到CDN加速,源伺服器就只要負擔體積很小的html代碼流量了,速度自然就快了,如果覺得還是不夠快那你就選擇配合使用分布儲存