欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx負(fù)載均衡詳細(xì)介紹

 更新時(shí)間:2016年09月06日 22:16:59   投稿:mdxy-dxy  
nginx不單可以作為強(qiáng)大的web服務(wù)器,也可以作為一個反向代理服務(wù)器,而且nginx還可以按照調(diào)度規(guī)則實(shí)現(xiàn)動態(tài)、靜態(tài)頁面的分離,可以按照輪詢、ip哈希、URL哈希、權(quán)重等多種方式對后端服務(wù)器做負(fù)載均衡,同時(shí)還支持后端服務(wù)器的健康檢查

如果只有一臺服務(wù)器時(shí),這個服務(wù)器掛了,那么對于網(wǎng)站來說是個災(zāi)難.因此,這時(shí)候的負(fù)載均衡就會大顯身手了,它會自動剔除掛掉的服務(wù)器.

下面簡單的介紹下我使用Nginx做負(fù)載的體會

下載---安裝Nginx這些不介紹了,前篇有介紹.

windows和Linux下配置Nginx負(fù)載的寫法一樣,故不分開介紹.

Nginx負(fù)載均衡一些基礎(chǔ)知識:

nginx 的 upstream目前支持 4 種方式的分配
1)、輪詢(默認(rèn))
每個請求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動剔除。
2)、weight
指定輪詢幾率,weight和訪問比率成正比,用于后端服務(wù)器性能不均的情況。
2)、ip_hash
每個請求按訪問ip的hash結(jié)果分配,這樣每個訪客固定訪問一個后端服務(wù)器,可以解決session的問題。
3)、fair(第三方)
按后端服務(wù)器的響應(yīng)時(shí)間來分配請求,響應(yīng)時(shí)間短的優(yōu)先分配。
4)、url_hash(第三方)

配置:

在http節(jié)點(diǎn)里添加:

#定義負(fù)載均衡設(shè)備的 Ip及設(shè)備狀態(tài)
upstream myServer {

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;
}

在需要使用負(fù)載的Server節(jié)點(diǎn)下添加

proxy_pass http://myServer;

upstream 每個設(shè)備的狀態(tài):

down 表示單前的server暫時(shí)不參與負(fù)載
weight 默認(rèn)為1.weight越大,負(fù)載的權(quán)重就越大。
max_fails :允許請求失敗的次數(shù)默認(rèn)為1.當(dāng)超過最大次數(shù)時(shí),返回proxy_next_upstream 模塊定義的錯誤
fail_timeout:max_fails 次失敗后,暫停的時(shí)間。
backup: 其它所有的非backup機(jī)器down或者忙的時(shí)候,請求backup機(jī)器。所以這臺機(jī)器壓力會最輕。

Nginx還支持多組的負(fù)載均衡,可以配置多個upstream 來服務(wù)于不同的Server.

配置負(fù)載均衡比較簡單,但是最關(guān)鍵的一個問題是怎么實(shí)現(xiàn)多臺服務(wù)器之間session的共享

下面有幾種方法(以下內(nèi)容來源于網(wǎng)絡(luò),第四種方法沒有實(shí)踐.)

1) 不使用session,換作cookie

能把session改成cookie,就能避開session的一些弊端,在從前看的一本J2EE的書上,也指明在集群系統(tǒng)中不能用session,否則惹出禍端來就不好辦。如果系統(tǒng)不復(fù)雜,就優(yōu)先考慮能否將session去掉,改動起來非常麻煩的話,再用下面的辦法。

2) 應(yīng)用服務(wù)器自行實(shí)現(xiàn)共享

asp.net可以用數(shù)據(jù)庫或memcached來保存session,從而在asp.net本身建立了一個session集群,用這樣的方式可以令 session保證穩(wěn)定,即使某個節(jié)點(diǎn)有故障,session也不會丟失,適用于較為嚴(yán)格但請求量不高的場合。但是它的效率是不會很高的,不適用于對效率 要求高的場合。

以上兩個辦法都跟nginx沒什么關(guān)系,下面來說說用nginx該如何處理:

3) ip_hash

nginx中的ip_hash技術(shù)能夠?qū)⒛硞€ip的請求定向到同一臺后端,這樣一來這個ip下的某個客戶端和某個后端就能建立起穩(wěn)固的session,ip_hash是在upstream配置中定義的:

upstream backend {
server 127.0.0.1:8080 ;
server 127.0.0.1:9090 ;
ip_hash;
}

ip_hash是容易理解的,但是因?yàn)閮H僅能用ip這個因子來分配后端,因此ip_hash是有缺陷的,不能在一些情況下使用:

1/ nginx不是最前端的服務(wù)器。ip_hash要求nginx一定是最前端的服務(wù)器,否則nginx得不到正確ip,就不能根據(jù)ip作hash。譬如使用的是squid為最前端,那么nginx取ip時(shí)只能得到squid的服務(wù)器ip地址,用這個地址來作分流是肯定錯亂的。

2/ nginx的后端還有其它方式的負(fù)載均衡。假如nginx后端又有其它負(fù)載均衡,將請求又通過另外的方式分流了,那么某個客戶端的請求肯定不能定位到同一臺session應(yīng)用服務(wù)器上。這么算起來,nginx后端只能直接指向應(yīng)用服務(wù)器,或者再搭一個squid,然后指向應(yīng)用服務(wù)器。最好的辦法是用location作一次分流,將需要session的部分請求通過ip_hash分流,剩下的走其它后端去。

4) upstream_hash

為了解決ip_hash的一些問題,可以使用upstream_hash這個第三方模塊,這個模塊多數(shù)情況下是用作url_hash的,但是并不妨礙將它用來做session共享:

假如前端是squid,他會將ip加入x_forwarded_for這個http_header里,用upstream_hash可以用這個頭做因子,將請求定向到指定的后端:

可見這篇文檔:http://www.sudone.com/nginx/nginx_url_hash.html

在文檔中是使用$request_uri做因子,稍微改一下:

hash $http_x_forwarded_for;

這樣就改成了利用x_forwarded_for這個頭作因子,在nginx新版本中可支持讀取cookie值,所以也可以改成:

hash $cookie_jsessionid;

假如在php中配置的session為無cookie方式,配合nginx自己的一個userid_module模塊就可以用nginx自發(fā)一個cookie,可參見userid模塊的英文文檔:
http://wiki.nginx.org/NginxHttpUserIdModule
另可用姚偉斌編寫的模塊upstream_jvm_route:http://code.google.com/p/nginx-upstream-jvm-route/

PS:繼續(xù)求救,為什么部署在Nginx 服務(wù)器上的頁面樣式會顯示不對呢?

相關(guān)文章

  • 利用nginx解決跨域問題的方法(以flask為例)

    利用nginx解決跨域問題的方法(以flask為例)

    這篇文章主要介紹了利用nginx解決跨域問題的方法,文中以flask為例給大家介紹的很詳細(xì),需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。
    2017-02-02
  • Nginx下升級https的方法步驟

    Nginx下升級https的方法步驟

    這篇文章主要介紹了Nginx下升級https的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • 本地HTTPS環(huán)境搭建的完整步驟記錄

    本地HTTPS環(huán)境搭建的完整步驟記錄

    這篇文章主要給大家介紹了關(guān)于本地HTTPS環(huán)境搭建的相關(guān)資料,文中通過示例代碼將實(shí)現(xiàn)的步驟一步步介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • Nginx如何配置根據(jù)路徑轉(zhuǎn)發(fā)詳解

    Nginx如何配置根據(jù)路徑轉(zhuǎn)發(fā)詳解

    Nginx是作為一個反向代理,轉(zhuǎn)發(fā),和負(fù)載均衡的服務(wù)器,也可以用于分布式,下面這篇文章主要給大家介紹了關(guān)于Nginx如何配置根據(jù)路徑轉(zhuǎn)發(fā)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Nginx代理緩沖proxy_buffering配置方式

    Nginx代理緩沖proxy_buffering配置方式

    這篇文章主要介紹了Nginx代理緩沖proxy_buffering配置方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 基于Nginx 反向代理獲取真實(shí)IP的問題詳解

    基于Nginx 反向代理獲取真實(shí)IP的問題詳解

    下面小編就為大家分享一篇基于Nginx 反向代理獲取真實(shí)IP的問題詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 深入理解Nginx之error_page模塊的使用

    深入理解Nginx之error_page模塊的使用

    error_page是nginx一個重要的指令,作用是定制化服務(wù)器錯誤頁面,本文主要介紹了Nginx之error_page模塊的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Windows系統(tǒng)下Nginx服務(wù)器的基本安裝和配置方法介紹

    Windows系統(tǒng)下Nginx服務(wù)器的基本安裝和配置方法介紹

    這篇文章主要介紹了Windows系統(tǒng)下Nginx服務(wù)器的基本安裝和配置方法,文中給出了一個配置文件的實(shí)例并作出了些說明,需要的朋友可以參考下
    2015-12-12
  • Nginx使用自簽ssl證書實(shí)現(xiàn)https連接的方法

    Nginx使用自簽ssl證書實(shí)現(xiàn)https連接的方法

    本文主要介紹了Nginx使用自簽ssl證書實(shí)現(xiàn)https連接的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 為Nginx啟用Brotli壓縮算法的方法示例

    為Nginx啟用Brotli壓縮算法的方法示例

    這篇文章主要介紹了為Nginx啟用Brotli壓縮算法的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12

最新評論