nginx緩存jscss
① Nginx怎樣設置瀏覽器緩存
瀏覽器緩存(BrowserCaching)
為了加速瀏覽器,瀏覽器在用戶磁碟上,對最近請求過的文檔進行存儲。
當訪問者再次請求這個頁面時,瀏覽器就可以從本地磁碟顯示文檔,這樣,就可以加速頁面的閱覽,緩存的方式節約了網路的資源,提高了網路的效率。
瀏覽器緩存可以通過expires指令輸出Header頭來實現,expires指令的語法如下
語法:expires[time| epoch | max |off]
默認值:expiresoff
作用域:http、server、location
用途:使用本指令可以控制http應答中的expires和Cache-Control的Header頭信息,起到控制頁面緩存的作用。
參數說明
Time,可以使用正數或負數,Expires頭標的值,將通過當前系統時間加上設定的time值來獲得。
epoch,指定expires的值為1January,1970,00:00:01 GMT。
Max,指定expires的值為31December 2037 23:59:59 GMT,Cache-Control的值為10年。
Off,表示不修改Expires和Cache-Control的值。
一個HTML頁面,會引用一些JavaScript文件、圖片文件、而這些格式的文件很少會被修改,則可以通過expires設置瀏覽器緩存。
比如,對常見格式的圖片、Flash文件在瀏覽器本地緩存30天,對JS、CSS文件在瀏覽器本地緩存1小時,代碼如下
② nginx無法載入js與css
你這個是路徑不對吧,看看瀏覽器報的啥錯誤,調整下
③ centos7 nginx php7 laravel 環境下的php項目中css和js緩存去不掉
這個緩存問題我這邊也有。
可以考慮用前端管理工具。
④ 為什麼要使用nginx伺服器
這里做了些基準測試表明nginx打敗了其它的輕量級的web伺服器和代理伺服器,同樣也贏了相對不是那麼輕量級的產品。
有人說這些基準測試是不準確的,因為在這樣那樣的環境下,做的比較不一致。我傾向同意基準測試只是告訴了我們其中一部分情況,你能做的是消除偏見(有人見過所有人都同意一個基準測試是公平的嗎?我是沒見過。)
不管怎樣,這篇文章不是做基準測試來讓人們爭論(如果你喜歡,可以在Google上找到那樣的文章),相反,下面的引述來自人們在現實世界中使用Nginx,在真實的負載下,服務於真正的應用和網站。
引述
我們投資的一些公司把web平台切換到Nginx後,可以顯著的解決擴展問題。Nginx明顯有效的實現了今天互聯網上最大網站數量的增長。
– Thomas Gieselmann, BV Capital.
我
對今天運行網站的所有人的建議是,想打破性能限制就研究下能否使用Nginx。CloudFlare去年在一個相對較小的基礎設施上已經擴展到可以處理每
月超過150億的瀏覽量,很大程度上是因為Nginx的擴展性。我的經驗表明切換到Nginx可以最大限度的利用現代的操作系統和現有的硬體資源。
– Matthew Prince, CloudFlare的聯合創始人和CEO
Apache和Nginx都有能力提供每秒鍾龐大的請求服務,但是隨著並發數量的增加,Apache的性能開始下降,然而Nginx的性能幾乎不會下降。
這里最好的一點是:因為Nginx是基於事件的,它不用為每個請求產生新的進程或線程,所以它的內存使用很低。在我的基準測試中,它的內存使用坐落在2.5M,Apache使用得更多。
– WebFaction
針
對Nginx v0.5.22 and Apache
v2.2.8我用ab(Apache的基準測試工具)跑了一個簡單的測試。在測試過程中,我用vmstat和top檢測系統。結果表明在提供靜態內容
時,Nginx做得比Apache好。兩個伺服器都在並發數100時表現最佳。Apache使用4個工作進程(線程模式),30%的CPU和17MB的內
存,每秒鍾處理6,500次請求。Nginx使用一個工作進程,15%的CPU,1MB內存,每秒鍾處理11,500次請求。
– Linux Journal
Apache好比是微軟Word,它有100萬個選項,但是你只需要其中6個。Nginx就處理那6項任務,但處理其中5項任務時速度比Apache快50倍。
– Chris Lea
我現在使用Nginx在單一伺服器上處理每天超過數千萬(也就是每秒鍾幾百次)的反向代理HTTP請求。在負載高峰期,它消耗大約15MB的內存和10%的CPU,在我的特定配置下(FreeBSD 6)。
在同樣的負載下,Apache表現大跌(在大約使用1000個進程後,上帝知道使用了多少內存),Pound表現大跌(如此多的線程,所有的線程棧會消耗400MB以上的內存),還有Lighttpd每小時泄露20MB以上內存(使用更多CPU,但不顯著)。
– Bob Ippolito in the TurboGears mailing list, 2006-08-24
我們現在使用Nginx 0.6.29的upstream hash模塊為我們需要的Varnish代理提供靜態雜湊。我們通常處理8-9千次請求/秒,大約1.2Gb/秒數據在幾台Nginx伺服器間傳輸,而且還有很大的成長空間。
– WordPress.com
直到今天,我們一直使用Pound來解決Justin.tv 的負載均衡。它一直使用20%的CPU,在高峰期會達到80%。在極高的負載下,它偶爾會崩潰。
我們只是切換到了Nginx,負載馬上就降到了大約3%的CPU使用。我們的頁面感覺更快了,盡管這可能是我的錯覺。不僅它的配置文件格式容易理解和配置,而且還提供了完整的web伺服器功能。我們再也沒有遇到尖峰期了,而且我懷疑現有的性能會徹底打敗Pound。
– Emmett Shear
我們使用Nginx作為主要的軟體用於一個免費的託管平台,我已經在Nginx中開發了一個特定的模塊用於banner潛入和統計計算,現在我們的中央伺服器可以處理大約150-200Mbit/s高度分散的http流量(所有的文件都很小)。
我認為這是非常好的結果。因為在同樣的伺服器上面Apache不管怎麼優化,甚至都不能處理60-80Mbit/s。
– Alexey Kovyrin
前
陣子,我們把我們的前端IMAP/POP代理從perdition切換到了nginx…,現在我們又使用nginx來做前端web代理伺服器…。最終的結
果是,現在的每台前端代理伺服器可以保持超過10,000並發(IMAP, POP, Web &
SMTP)連接(其中很多還是SSL),僅僅只使用了大約10%的CPU。
– FastMail.fm blog
最近,我們的靜態內容伺服器切換到了Nginx,無疑這是這么多年來我印象最深刻的一款web伺服器。我們運行在一台配有8G內存的機器上,但是nginx進程只使用了可笑的1.4Mb。
– Philip Jacob
我們已經用nginx取代了Squid(反向代理)+Apache的方案,平均負載和CPU使用一樣降低了一半。另外我們的基準測試表明新的配置每秒鍾可以處理的請求數是舊配置的2-3倍。
– HowtoForge
我們用一些CMS系統( Wordpress, Drupal, Joomla, TYPO3等)做了基準測試,結果是Nginx提供網頁的速度比Apache快了50%,同時nginx每秒鍾處理的請求數(RPS)是Apache的177%。
⑤ nginx 怎麼開啟緩存
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 7d;
}
當訪問的文件是gif 或jpg等格式時 本地緩存30天
當訪問的是js或css時 本地緩存7天
⑥ Nginx緩存什麼時候失效
location ~.*\.(js|css|html|png|jpg)$ 這個是設置類型
{
expires 3d;
}
expires 3d;//表示緩存3天
expires 3h;//表示緩存3小時
expires max;//表示緩存10年
expires -1;//表示永遠過期。
如果設置為-1在js、css等靜態文件在沒有修改的情況下返回的是http 304,如果修改返回http 200
http 304:自從上次請求後,請求的網頁未修改過。伺服器返回此響應時,不會返回網頁內容。
http 200:伺服器已成功處理了請求,這表示伺服器提供了請求的內容。
=======
如果不想讓代理或瀏覽器緩存,加no-cache參數
add_header Cache-Control no-cache;
這樣瀏覽器F5刷新時,返回的就是http 200,而不是http 304
⑦ nginx緩存css js 需要設置過期時間嗎
不用呀,可以根據文件最後修改時間返回是否發送新內容到客戶端。
⑧ nginx 緩存JS一小時,請問如何更新緩存
nginx 緩存 JS一小時,如下
location ~ .*\.(js|css)?$ {
expires 1h;
}
OK,這是沒有問題的,我要臨時刷新緩存,大不了加個後綴即可,例如:abc.js?v=123
⑨ 如何利用Nginx的緩沖,緩存優化提升性能
在開發調試web的時候,經常會碰到因瀏覽器緩存(cache)而經常要去清空緩存或者強制刷新來測試的煩惱,提供下apache不緩存配置和nginx不緩存配置的設置。
apache:
首先確定配置文件httpd.conf中確已經載入mod_headers模塊。
LoadMole headers_mole moles/mod_headers.so
我們可以根據文件類型來讓瀏覽器每次都從伺服器讀取,這里測試用css、js、swf、php、html、htm這幾種文件。
<FilesMatch 「\.(css|js|swf|php|htm|html)$」>
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>
nginx:
location ~ .*\.(css|js|swf|php|htm|html )$ {
add_header Cache-Control no-store;
}
對於站點中不經常修改的靜態內容(如圖片,JS,CSS),可以在伺服器中設置expires過期時間,控制瀏覽器緩存,達到有效減小帶寬流量,降低伺服器壓力的目的。
以Nginx伺服器為例:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
#過期時間為30天,
#圖片文件不怎麼更新,過期可以設大一點,
#如果頻繁更新,則可以設置得小一點。
expires 30d;
}
location ~ .*\.(js|css)$ {
expires 10d;
}
⑩ 如何在nginx中緩存靜態文件
首先確定配置文件httpd.conf中確已經載入mod_headers模塊。LoadMoleheaders_molemoles/mod_headers.so我們可以根據文件類型來讓瀏覽器每次都從伺服器讀取,這里測試用css、js、swf、php、html、htm這幾種文件。HeadersetCache-Control"private,no-cache,no-store,proxy-revalidate,no-transform"HeadersetPragma"no-cache"