1. 程式人生 > >nginx的proxy_cache做網站快取

nginx的proxy_cache做網站快取

為什麼要做web cache,我想大家最主要的是解決流量的壓力。隨著網站流量的提升,如果只是單臺機器既處理靜態檔案,又處理動態指令碼,顯然效率很難上升,不能處理日益上漲的流量壓力。與此同時某些網站的頁面內容並不是經常變化,因此我們可以分兩層架構來組織網站。前端web快取+後端web伺服器,可以參看這裡配置nginx反向代理配置

前端web快取有多重方式實現,原理就是隊請求結果頁面靜態化並設定一個超時期限,快取頁面過期後,新請求到達時重新到後端web伺服器獲取內容更新;沒有nginx前比較流行的方法是squid,但squid不能充分利用處理器的多核特性,越來越多的網站選用nginx來做前端的web快取。

要想使用nginx的快取功能要保證nginx添加了proxy模組。我們可以使用-V選項(大寫的V,小寫的v是看版本號的)來檢視nginx的編譯引數。我使用的是預設的引數編譯的,如下所示:

[email protected]:/usr/local/nginx# ./nginx -V
nginx version: nginx/1.2.3
built by gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
TLS SNI support enabled
configure arguments: --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.21 --with-zlib=/usr/local/src/zlib-1.2.7

nginx的所有模組必須在編譯的時候新增,不能再執行的時候動態載入,預設的編譯選項下包含的模組,如果你不是顯示的用引數關閉它。

nginx預設安裝的模組如下

模組名稱 描述 版本 如何禁用
Core Control ports, locations, error pages, aliases, and other essentials. --without-http
Access Allow/deny based on IP address. --without-http_access_module
Auth Basic Basic HTTP authentication. --without-http_auth_basic_module
Auto Index Generates automatic directory listings. --without-http_autoindex_module
Browser Interpret "User-Agent" string. 0.4.3 --without-http_browser_module
Charset Recode web pages. --without-http_charset_module
Empty GIF Serve a 1x1 image from memory. 0.3.10 --without-http_empty_gif_module
FastCGI FastCGI Support. --without-http_fastcgi_module
Geo Set config variables using key/value pairs of IP addresses. 0.1.17 --without-http_geo_module
Gzip Gzip responses. --without-http_gzip_module
Headers Set arbitrary HTTP response headers.
Index Controls which files are to be used as index.
Limit Requests Limit frequency of connections from a client. 0.7.20 --without-http_limit_req_module
Limit Zone Limit simultaneous connections from a client. Deprecated in 1.1.8, use Limit Conn Instead. 0.5.6 --without-http_limit_zone_module
Limit Conn Limit concurrent connections based on a variable. --without-http_limit_conn_module
Log Customize access logs.
Map Set config variables using arbitrary key/value pairs. 0.3.16 --without-http_map_module
Memcached Memcached support. --without-http_memcached_module
Proxy Proxy to upstream servers. --without-http_proxy_module
Referer Filter requests based on Referer header. --without-http_referer_module
Rewrite Request rewriting using regular expressions. --without-http_rewrite_module
SCGI SCGI protocol support. 0.8.42 --without-http_scgi_module
Split Clients Splits clients based on some conditions 0.8.37 --without-http_split_clients_module
SSI Server-side includes. --without-http_ssi_module
Upstream For load-balancing. --without-http_upstream_ip_hash_module (ip_hash directive only)
User ID Issue identifying cookies. --without-http_userid_module
uWSGI uWSGI protocol support. 0.8.40 --without-http_uwsgi_module
X-Accel X-Sendfile-like module.

proxy模組中常用的指令時proxy_pass和proxy_cache.

nginx的web快取功能的主要是由proxy_cache、fastcgi_cache指令集和相關指令集完成,proxy_cache指令負責反向代理快取後端伺服器的靜態內容,fastcgi_cache主要用來處理FastCGI動態程序快取(這裡我不是很清楚這兩個指令的區別,好像功能上都差不多,尤其後面這句話的意思,是我翻譯過來的)。

確認proxy模組安裝好後,下面對nginx的配置檔案進行設定,重點部分如標紅字型所示。

這是我的nginx.conf配置檔案。

user www-data;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$host"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#Compression Settings
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
# Some version of IE 6 don't handle compression well on some mime-types,
# so just disable for them
gzip_disable "MSIE [1-6].(?!.*SV1)";
# Set a vary header so downstream proxies don't send cached gzipped
# content to IE6
gzip_vary on;
#end gzip

#cache begin
proxy_buffering on;
proxy_cache_valid any 10m;
proxy_cache_path /data/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
proxy_temp_path /data/temp;
proxy_buffer_size 4k;
proxy_buffers 100 8k;
#cache end

## Basic reverse proxy server ##
## Apache (vm02) backend for www.example.com ##
upstream apachephp {
server www.quancha.cn:8080; #Apache1
}

## Start www.quancha.cn ##
server {
listen 80;
server_name *.quancha.cn;

access_log logs/quancha.access.log main;
error_log logs/quancha.error.log;
root html;
index index.html index.htm index.php;

## send request back to apache1 ##
location / {
proxy_pass http://apachephp;
proxy_cache my-cache;
proxy_cache_valid 200;

#Proxy Settings
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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
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;
##End Proxy Settings
}
}
## End www.quancha.cn ##

}

配置檔案中以proxy_開頭的指令我們大都可以字面意思得到理解。請務必注意一點proxy_cache_path和proxy_temp_path設定的目錄需要在同一分割槽,因為它們之間是硬連結的關係。

轉載:http://www.nginx.cn/414.html

相關推薦

使用Varnish代替Squid網站快取加速器的詳細解決方案 原創

    [文章作者:張宴 本文版本:v1.2 最後修改:2008.01.02 轉載請註明出處:http://blog.s135.com]  我曾經寫過一篇文章──《初步試用Squid的替代產品──Varnish Cache網站加速器》,但當時僅僅是用著玩,沒做深入研究。  今天寫的這篇關於Varnish的文章

nginx的proxy_cache網站快取

為什麼要做web cache,我想大家最主要的是解決流量的壓力。隨著網站流量的提升,如果只是單臺機器既處理靜態檔案,又處理動態指令碼,顯然效率很難上升,不能處理日益上漲的流量壓力。與此同時某些網站的頁面內容並不是經常變化,因此我們可以分兩層架構來組織網站。前端web快取+

tp5怎麼清空網站快取

首先我們要做的效果如圖: 前臺程式碼 <li> <a href="{:url('Index/clearCache')}" class="login-area dropdown-toggle"> <section&

怎麽網站SEO優化排名效果才更好

廣告 得到 執行 結合 網絡 分享 優化 用戶體驗 搜索引擎 無規劃,不營銷!一個網站的優化亦是如此,想要做好網站SEO優化就要做好布局,制定好策略,在網站上線之前就要做好準備。只有這樣,才能步步為贏,最終才能達到更好的優化效果。如何做好網站SEO優化呢?下面小編給大家簡單

為什麽要通過百科類產品網站營銷優化推廣工作

今天是2017年6月10日,細心的站長應該早已悉知,百度從本月1日起正式開始落實實名制。現在你去看一眼百度知道首頁的右上角,有一個十分顯眼的HOT,時刻提醒著用戶實名制來啦!這表明了百度加強用戶管理的決心,也增加了通過百度產品做網站營銷優化推廣工作的難度。不過,我們億豐網絡倒是認為本次調整是一次好事,因

網站有驚喜~精彩活動不容錯過!

網站建設 建站優惠月好消息!!好消息!!! 2017年6月1日—2017年6月30日期間 首次購買 凡科建站 網站版本的用戶可有以下福利: 1、網站版本買2年即加送2年; 2、購買1年網站版本,獲贈88元域名現金券。購買4年或10年網站版本,則獲贈128元域名現金券。均可購買1年域名;

網站,享優惠

做網站 網站建設 當當當當!精彩活動駕到!! 2017年6月1日—2017年6月30日期間 首次購買 凡科建站 網站版本的用戶可有以下福利: 1、網站版本買2年即加送2年; 2、購買1年網站版本,獲贈88元域名現金券。購買4年或10年網站版本,則獲贈128元域

請推薦幾個asp.net下網站的好的開源框架

b- 開發 開放源代碼 ces dex 生產 推薦 面向對象 塑造 1.We7 CMSWe7 CMS是由西部動力開發的一款充分發掘互聯網Web2.0(如博客、RSS等)的信息組織優勢,將其理念利用到政府企事業網站的構建、組織、管理中的網站建設和管理方面的產品。系統目標:叫創

網站seo需要特別註意的五個方面

搜索 發展 是不是 質量 方法 為什麽 出了 效果 友情 做網站seo需要特別註意的五個方面不管我們是不是承認,沒有好的排名很多時候不是搜索引擎抽風或者如何,還是我們自己沒有做好的原因,本文我就和大家分享一下得易搜信息網每天做網站seo需要特別註意的五個方面吧。   1、外

網站SEO優化,這些網絡引流方法,你應該知道

尋求 可能 垃圾郵件 百度搜 如果 什麽 網站鏈接 很快 建立 對於網站SEO優化來說,網站流量的重要性不言而喻!國內的站長平臺工具通過用網站流量來衡量一個網站的權重,當你的網站流量很高的時候,同時會影響你網站的權重,進而影響你網站SEO優化排名。所以說流量對於一個網站的意

網站經常會用到的一些js效果

lan ntb 是否 ray getc tle complete self eight 1.返回頂部 $(function(){ $(‘.top‘).hide(); $(window).scroll(function() {

金華網站SEO技巧:短時間內提升百度權重

義烏網站建設金華做網站SEO技巧:短時間內提升百度權重 外國人用谷歌中國用百度,做百度SEO的站長絕大部分非常在意網站的權重 ,也就是我們所說的BR值,雖然百度權重只是愛站網提供的一個評估值,盡管只是一個片面的說明,卻是站長們不能忽略的數據,尤其在換友鏈的時候br值高的 往往能換到很好的友鏈,短時間內提升百度

網站有什麽好處,對企業有何價值?

做網站企業如果想在互聯網上打開營銷的道路,擁有自己的企業網站是最基本的要求,後期的一系列營銷步驟都是建立在網站的基礎上操作的,是實現轉化的重要途徑。當然做網站的好處還有很多,下面眾展網絡為大家詳細介紹做網站對企業有什麽價值: 一、增加曝光率中小企業常常都會考慮一個問題,我們的企業何時才能像那些大企業一樣,被眾

企業請人網站被網絡公司騙了怎麽辦?網站建設制作外包需要註意什麽事項?

升級 提高 視覺 企業網 了解 到你 是你 減少 網絡建設 記得之前一個建站客戶找王晴兒聊天,客戶分享了她之前找人做網站被騙的經歷,經歷分享完後客戶不但沒有任何抱怨,反而看得很開,真是讓我也感慨頗深,覺得應學會寬容傷害自己的人,因為他們很可憐,各人都有自己的難處,大家都不容

怎麽,網站網站建設需要準備哪些,

技術 事業 全球 單位 個人 ava 主機托管 一個 程序 怎麽做網站,網站建設需要準備哪些東西? 網站制作通俗的來說就是網站通過頁面結構定位、合理布局、圖片文字處理、程序設計、數據庫設計等一系列工作的總和,也是將網站設計師的圖片用HTML(標準通用標記語言下的一個應用

使用selenium+firefox網站下載文件

無法使用 session driver open 鏈接 pre man 依然 exce 環境:centos el7.x86_64系統+python2.7.5+selenium 3.13.0+geckodriver_0.21.0+firefox_60.1.0 問題:使用bro

公司找人網站最少費用需要花多少錢?企業網站建設制作外包哪裏價格最低最便宜?

ima 分享交流 -a alt 服務 ali 驗收 市場 什麽 有時候聽到有一些客戶或朋友說:之前找人做網站被網絡公司騙了怎麽辦? 每次聽到這類消息,王晴兒心裏都有點哇涼哇涼的,為什麽會被騙呢?難道真的碰到了坑人專業戶,但是這種情況稍微留心點就能看出對方靠不靠譜,從而避免被

專業代網站logo設計、代婚禮LOGO設計、找人公司LOGO設計、找人教育行業LOGO設計、品牌創意設計

蝴蝶 很多 簡單 搜狗 The 思維 教育 無法 信息化 作為認知語言學中的兩個重要概念, 隱喻 (metaphor) 和轉喻 (metonymy) 不再是作為傳統的修辭手法, 而是一種重要的思維方式和認知手段。隱喻具有創造相似性, 建立事物之間聯系的功能。轉喻又稱換喻,

不懂技術又想網站或者微商城或小程序怎麽辦,一招學會自己獨立制作免費小程序or網站or微商城

ESS ces ado shadow 選擇 分享圖片 pro 後臺 text 第一步:註冊一個賬號和密碼www.jzy123.cn 第二部 為您的網站或小程序起一個名稱第三步 選擇適合您的類型第四部選擇適合您的模板點擊選用第五步進入後臺拉,需要替換成您公司的信息或者您的產

網站-Http狀態碼詳解

是否 bottom 接收 add spa server 情況 cat stat https://mp.weixin.qq.com/s/ZcYG59yLsLCNY2-2k4YqwA HTTP狀態碼(HTTP Status Code)是用以表示網頁服務器HTTP響應狀態的3位數