nginx負載均衡 頁面緩存

nginx的upstream目前支持4種方式的分配

1、輪詢(默認)

每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。

2、weight?
指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況。?
例如:?
upstream bakend {?
server 192.168.0.14 weight=10;?
server 192.168.0.15 weight=10;?
}

2、ip_hash?
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題。?
例如:?
upstream bakend {?
ip_hash;?
server 192.168.0.14:88;?
server 192.168.0.15:80;?
}

3、fair(第三方)?
按后端服務器的響應時間來分配請求,響應時間短的優先分配。?
upstream backend {?
server server1;?
server server2;?
fair;?
}

4、url_hash(第三方)

按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存時比較有效。

例:在upstream中加入hash語句,server語句中不能寫入weight等其他的參數,hash_method是使用的hash算法

upstream backend {?
server squid1:3128;?
server squid2:3128;?
hash $request_uri;?
hash_method crc32;?
}

tips:

upstream bakend{#定義負載均衡設備的Ip及設備狀態?
ip_hash;?
server 127.0.0.1:9090 down;?
server 127.0.0.1:8080 weight=2;?
server 127.0.0.1:6060;?
server 127.0.0.1:7070 backup;?
}?
在需要使用負載均衡的server中增加?
proxy_pass ;

每個設備的狀態設置為:?
1.down 表示單前的server暫時不參與負載?
2.weight 默認為1.weight越大,負載的權重就越大。?
3.max_fails :允許請求失敗的次數默認為1.當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤?
4.fail_timeout:max_fails次失敗后,暫停的時間。?
5.backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。

nginx支持同時設置多組的負載均衡,用來給不用的server來使用。

client_body_in_file_only 設置為On 可以講client post過來的數據記錄到文件中用來做debug?
client_body_temp_path 設置記錄文件的目錄 可以設置最多3層目錄

location 對URL進行匹配.可以進行重定向或者進行新的代理 負載均衡

?

?

如何配置proxy_cache模塊

在nginx.conf文件中添加如下代碼:

http{  ......  proxy_cache_path/data/nginx/tmp-test levels=1:2 keys_zone=tmp-test:100m inactive=7d max_size=1000g;  
}
代碼說明:

proxy_cache_path?緩存文件路徑

levels?設置緩存文件目錄層次;levels=1:2?表示兩級目錄

keys_zone?設置緩存名字和共享內存大小

inactive?在指定時間內沒人訪問則被刪除

max_size?最大緩存空間,如果緩存空間滿,默認覆蓋掉緩存時間最長的資源。

當配置好之后,重啟nginx,如果不報錯,則配置的proxy_cache會生效

?

查看??proxy_cache_path?/data/nginx/目錄,
會發現生成了tmp-test文件夾。

如何使用proxy_cache

在你對應的nginx vhost server配置文件中添加如下代碼:
location /tmp-test/ {  proxy_cache tmp-test;  proxy_cache_valid  200 206 304 301 302 10d;  proxy_cache_key $uri;  proxy_set_header Host $host:$server_port;  proxy_set_header X-Real-IP $remote_addr;  proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;  proxy_passhttp://127.0.0.1:8081/media_store.php/tmp-test/;  
}
配置項介紹:
Proxy_cache?tmp-test?使用名為tmp-test的對應緩存配置

proxy_cache_valid? 200 206 304 301 302 10d;?對httpcode為200…的緩存10天

proxy_cache_key?$uri??定義緩存唯一key,通過唯一key來進行hash存取

proxy_set_header??自定義http header頭,用于發送給后端真實服務器。

proxy_pass??指代理后轉發的路徑,注意是否需要最后的/
到這里,最基本的proxy_cache功能就配置成功了。當uri成功匹配到該location,則proxy_cache就會生效。

?

轉載于:https://www.cnblogs.com/vania/p/8028937.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252709.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252709.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252709.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Date擴展 正則匹配

<script>Date.prototype.formatfunction(){var dthis;//嚴格匹配 yyyy-mm-dd hh-mm-ssvar reg1/yyyy-mm-dd hh-m-s/;//匹配 yyyy*mm*dd hh*mm*ss *為任意一個除\r\n之外的字符 中間為任意多個空格var reg2/y{4}.m{2}.dd\shh.mm.ss/;reg1.test(arguments[0]);reg2.test(a…

終于有人把EMC基礎知識總結如此清晰

傳導與輻射 電磁干擾(Electromagnetic Interference)&#xff0c;簡稱EMI&#xff0c;有傳導干擾和輻射干擾兩種。傳導干擾主要是電子設備產生的干擾信號通過導電介質或公共電源線互相產生干擾&#xff1b;輻射干擾是指電子設備產生的干擾信號通過空間耦合把干擾信號傳給另一個…

填坑-十萬個為什么?(13)

簡介:很多概念不清或忘記&#xff0c;重新構建自己的知識體系。每天問自己1~多個問題。我是菜鳥 成為大神之路! 1. 經典面試題 for(var i0;i<3;i){ setTimeout(function() { console.log(i) }, 10);}打印結果&#xff1f;分析&#xff1f; for(var i 0; i < 10; i) {con…

WordPress分類列表函數:wp_list_categories用法及參數詳解舉例

http://www.511yj.com/wordpress-wp-categories.html 注意&#xff1a; 1、 wp_list_categories() 和 list_cats() 以及 wp_list_cats() 的使用類似&#xff0c;但是后面 2 個已經棄用。 2、如果你希望不格式化輸出分類&#xff0c;請使用 get_categories() 3、因為 WordPress …

DVP,LVDS和MIPI

Mipi 接口 和 LVDS 接口區別 主要區別&#xff1a; 1. LVDS接口只用于傳輸視頻數據&#xff0c;MIPI DSI不僅能夠傳輸視頻數據&#xff0c;還能傳輸控制指令&#xff1b; 2. LVDS接口主要是將RGB TTL信號按照SPWG/JEIDA格式轉換成LVDS信號進行傳輸&#xff0c;MIPI DSI接口則…

安裝Cornerstone3.1注意點

mac在升級之后就不能社會做任何來源安裝,需要在終端運行 sudo spctl --master-disable//添加任何來源的,再次安裝就可以的轉載于:https://www.cnblogs.com/chengenyan/p/6835970.html

2019我的目標

1 能考上自己理想的高中 2 至少學會一直種語言&#xff08;英語&#xff09; 3 堅持記錄每一天&#xff0c;每個星期至少寫一遍文章 4 堅持到底 轉載于:https://www.cnblogs.com/ta20/p/10203974.html

nodejs開發——require與exports的使用

nodejs開發——require與exports的使用 另一片文章總結&#xff1a;http://www.cnblogs.com/hfultrastrong/p/8036682.html require require函數用于在當前模塊中加載和使用別的模塊&#xff0c;傳入一個模塊名&#xff0c;返回一個模塊導出對象。模塊名可使用相對路徑&#x…

jvm 內存溢出問題排查方法

如果你做TCP通訊或者map集合操作&#xff0c;并發處理等功能時&#xff0c;很容易出現 Java 內存溢出的問題。本篇文章&#xff0c;帶領大家深入jvm&#xff0c;分析并找出jvm內存溢出的代碼。 jvm中除了程序計數器&#xff0c;其他的區域都有可能會發生內存溢出 內存溢出是什么…

一個go1.9.x 編譯器內聯引起的棧信息錯亂的問題分析

2019獨角獸企業重金招聘Python工程師標準>>> 背景是在寫個日志庫&#xff0c;日志庫有個很重要的功能就是要打印出調用棧&#xff0c;知道具體是哪個文件&#xff0c;哪個函數調用的Info 等。 然后在測試中發現了一種寫法&#xff0c;我自己本機測試一直ok&#xff…

CMOS Sensor的調試經驗分享

轉自&#xff1a;http://bbs.52rd.com/forum.php?modviewthread&tid276351 CMOS Sensor的調試經驗分享      我這里要介紹的就是CMOS攝像頭的一些調試經驗。   首先&#xff0c;要認識CMOS攝像頭的結構。我們通常拿到的是集成封裝好的模組&#xff0c;一般由三個部…

Learn Python—表達式、數據類型、流程控制

表達式 在 Python 中&#xff0c;2 2 稱為“表達式”&#xff0c;它是語言中最基本的編程結構。表達式包含“值”&#xff08;例如2&#xff09;和“操作符”&#xff08;例如&#xff09;&#xff0c;并且總是可以求值&#xff08;也就是歸約&#xff09;為單個值。這意味著在…

監控工具之zabbix server3.4 部署配置

[rootlocalhost src]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [rootlocalhost src]# pwd /usr/local/src 配置zabbix的yum源 [rootlocalhost src]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm …

CMOS Sensor基礎知識

CMOS Sensor基礎知識 曝光時間以行長為單位&#xff1b; PCLK以Hz為單位&#xff1b; 行長以周期數為單位&#xff0c;幀長以行長數為單位&#xff1b;其中周期數就是頻率 T 周期以ms為單位&#xff1b; f 頻率以Hz為單位&#xff1b; f 1 / T&#xff1b; Vsync Dummy Line…

java獲取mp3的時長和播放mp3文件

所需包為jaudiotagger-2.2.6-SNAPSHOT.jar和jl1.0.1.jar。 import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream;import org.jaudiotagger.audio.AudioFileIO; import org.jaudiotagger.audio.mp3.MP3AudioHeader; import org.jaudiotag…

Redis 優缺點

REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。 Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫&#xff0c;并提供多種語言的API。 Redis 與其他 key - value 緩存產品…

Python并發編程之concurrent.futures

2019獨角獸企業重金招聘Python工程師標準>>> concurrent.futures模塊提供了一個異步執行callables的高級接口。 可以使用ThreadPoolExecutor和ProcessPoolExecutor。 兩者都繼承了相同的接口&#xff0c;該接口由抽象的Executor類定義。 一個抽象類&#xff0c;提供…

1.3鏈表

鏈表的物理存儲結構是用一組地址任意的存儲單元存儲數據的。不像順序表占據連續的一段內存空間&#xff0c;而是將存儲單元分散在內存的任意地址上。 鏈表結構中&#xff0c;每個數據元素記錄都存放到鏈表的一個節點&#xff08;node&#xff09;中&#xff0c;而每個節點之間由…

移植opencv3.20到3556AV100

1.移植環境&#xff1a; Ubuntu14.04 arm-hisiv200-linux-opencv3.20 下載地址 2.移植步驟&#xff1a; 1&#xff09;安裝cmake-gui 2&#xff09;新建一個opencv目錄存放opencv-3.2.0.zip&#xff0c;并解壓 擊Browse Source選擇~/hisi/opencv/opencv-3.2.0 點擊Brow…

ngnix 詳解

4 Nginx的rpm軟件包安裝 4.1 安裝包在位置 D:\講課內容--\新巴巴運動網\nginx高并發解決\nginx安裝包 4.2 此種安裝方式不用安裝gcc等編譯工具 4.3 安裝命令如下 rpm –ivh nginx 5 配置虛擬主機 5.1 什么是虛擬主機 虛擬主機是一種特殊的軟硬件技術&#xff0c;它可以將網絡上…