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

在Nginx服務(wù)器中配置針對TCP的負載均衡的方法

 更新時間:2015年12月30日 16:23:21   投稿:goldensun  
這篇文章主要介紹了在Nginx服務(wù)器中配置針對TCP的負載均衡的方法,另外還介紹了TCP負載均衡的執(zhí)行原理,需要的朋友可以參考下

 默認nginx不支持tcp的負載均衡,需要打補丁,(連接方式:從客戶端收到一個連接,將從本地新建一個連接發(fā)起到后端服務(wù)器),具體配置如下:

一、安裝Nginx
1.下載nginx

# wget http://nginx.org/download/nginx-1.2.4.tar.gz

2.下載tcp模塊補丁

# wget https://github.com/yaoweibin/nginx_tcp_proxy_module/tarball/master

源碼主頁: https://github.com/yaoweibin/nginx_tcp_proxy_module

3.安裝nginx

# tar xvf nginx-1.2.4.tar.gz
# tar xvf yaoweibin-nginx_tcp_proxy_module-v0.4-45-ga40c99a.tar.gz
# cd nginx-1.2.4
# patch -p1 < ../yaoweibin-nginx_tcp_proxy_module-a40c99a/tcp.patch
#./configure --prefix=/usr/local/nginx --with-pcre=../pcre-8.30 --add-module=../yaoweibin-nginx_tcp_proxy_module-ae321fd/
# make
# make install

二、修改配置文件
修改nginx.conf配置文件

# cd /usr/local/nginx/conf
# vim nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}

tcp {
upstream mssql {
server 10.0.1.201:1433;
server 10.0.1.202:1433;
check interval=3000 rise=2 fall=5 timeout=1000;
}
server {
listen 1433;
server_name 10.0.1.212;
proxy_pass mssql;
}
}

三、啟動nginx

# cd /usr/local/nginx/sbin/
# ./nginx

查看1433端口:

#lsof :1433

四、測試

# telnet 10.0.1.201 1433

五、使用sql server client工具測試

20151230161710046.png (555×362)

六、TCP負載均衡的執(zhí)行原理
當Nginx從監(jiān)聽端口收到一個新的客戶端鏈接時,立刻執(zhí)行路由調(diào)度算法,獲得指定需要連接的服務(wù)IP,然后創(chuàng)建一個新的上游連接,連接到指定服務(wù)器。

20151230162258931.jpg (434×291)

TCP負載均衡支持Nginx原有的調(diào)度算法,包括Round Robin(默認,輪詢調(diào)度),哈希(選擇一致)等。同時,調(diào)度信息數(shù)據(jù)也會和健壯性檢測模塊一起協(xié)作,為每個連接選擇適當?shù)哪繕松嫌畏?wù)器。如果使用Hash負載均衡的調(diào)度方法,你可以使用$remote_addr(客戶端IP)來達成簡單持久化會話(同一個客戶端IP的連接,總是落到同一個服務(wù)server上)。

和其他upstream模塊一樣,TCP的stream模塊也支持自定義負載均和的轉(zhuǎn)發(fā)權(quán)重(配置“weight=2”),還有backup和down的參數(shù),用于踢掉失效的上游服務(wù)器。max_conns參數(shù)可以限制一臺服務(wù)器的TCP連接數(shù)量,根據(jù)服務(wù)器的容量來設(shè)置恰當?shù)呐渲脭?shù)值,尤其在高并發(fā)的場景下,可以達到過載保護的目的。

Nginx監(jiān)控客戶端連接和上游連接,一旦接收到數(shù)據(jù),則Nginx會立刻讀取并且推送到上游連接,不會做TCP連接內(nèi)的數(shù)據(jù)檢測。Nginx維護一份內(nèi)存緩沖區(qū),用于客戶端和上游數(shù)據(jù)的寫入。如果客戶端或者服務(wù)端傳輸了量很大的數(shù)據(jù),緩沖區(qū)會適當增加內(nèi)存的大小。

20151230162322247.jpg (490×77)

當Nginx收到任意一方的關(guān)閉連接通知,或者TCP連接被閑置超過了proxy_timeout配置的時間,連接將會被關(guān)閉。對于TCP長連接,我們更應(yīng)該選擇適當?shù)膒roxy_timeout的時間,同時,關(guān)注監(jiān)聽socke的so_keepalive參數(shù),防止過早地斷開連接。

 

PS:服務(wù)健壯性監(jiān)控

TCP負載均衡模塊支持內(nèi)置健壯性檢測,一臺上游服務(wù)器如果拒絕TCP連接超過proxy_connect_timeout配置的時間,將會被認為已經(jīng)失效。在這種情況下,Nginx立刻嘗試連接upstream組內(nèi)的另一臺正常的服務(wù)器。連接失敗信息將會記錄到Nginx的錯誤日志中。

如果一臺服務(wù)器,反復(fù)失?。ǔ^了max_fails或者fail_timeout配置的參數(shù)),Nginx也會踢掉這臺服務(wù)器。服務(wù)器被踢掉60秒后,Nginx會偶爾嘗試重連它,檢測它是否恢復(fù)正常。如果服務(wù)器恢復(fù)正常,Nginx將它加回到upstream組內(nèi),緩慢加大連接請求的比例。

之所“緩慢加大”,因為通常一個服務(wù)都有“熱點數(shù)據(jù)”,也就是說,80%以上甚至更多的請求,實際都會被阻擋在“熱點數(shù)據(jù)緩存”中,真正執(zhí)行處理的請求只有很少的一部分。在機器剛剛啟動的時候,“熱點數(shù)據(jù)緩存”實際上還沒有建立,這個時候爆發(fā)性地轉(zhuǎn)發(fā)大量請求過來,很可能導(dǎo)致機器無法“承受”而再次掛掉。以mysql為例子,我們的mysql查詢,通常95%以上都是落在了內(nèi)存cache中,真正執(zhí)行查詢的并不多。

其實,無論是單臺機器或者一個集群,在高并發(fā)請求場景下,重啟或者切換,都存在這個風(fēng)險,解決的途徑主要是兩種:

(1)請求逐步增加,從少到多,逐步積累熱點數(shù)據(jù),最終達到正常服務(wù)狀態(tài)。
(2)提前準備好“常用”的數(shù)據(jù),主動對服務(wù)做“預(yù)熱”,預(yù)熱完成之后,再開放服務(wù)器的訪問。

TCP負載均衡原理上和LVS等是一致的,工作在更為底層,性能會高于原來HTTP負載均衡不少。但是,不會比LVS更為出色,LVS被置于內(nèi)核模塊,而Nginx工作在用戶態(tài),而且,Nginx相對比較重。另外一點,令人感到非??上?,這個模塊竟然是個付費功能。

TCP負載均衡模塊支持內(nèi)置健壯性檢測,一臺上游服務(wù)器如果拒絕TCP連接超過proxy_connect_timeout配置的時間,將會被認為已經(jīng)失效。在這種情況下,Nginx立刻嘗試連接upstream組內(nèi)的另一臺正常的服務(wù)器。連接失敗信息將會記錄到Nginx的錯誤日志中。

20151230162339424.jpg (372×245)

如果一臺服務(wù)器,反復(fù)失?。ǔ^了max_fails或者fail_timeout配置的參數(shù)),Nginx也會踢掉這臺服務(wù)器。服務(wù)器被踢掉60秒后,Nginx會偶爾嘗試重連它,檢測它是否恢復(fù)正常。如果服務(wù)器恢復(fù)正常,Nginx將它加回到upstream組內(nèi),緩慢加大連接請求的比例。

之所“緩慢加大”,因為通常一個服務(wù)都有“熱點數(shù)據(jù)”,也就是說,80%以上甚至更多的請求,實際都會被阻擋在“熱點數(shù)據(jù)緩存”中,真正執(zhí)行處理的請求只有很少的一部分。在機器剛剛啟動的時候,“熱點數(shù)據(jù)緩存”實際上還沒有建立,這個時候爆發(fā)性地轉(zhuǎn)發(fā)大量請求過來,很可能導(dǎo)致機器無法“承受”而再次掛掉。以mysql為例子,我們的mysql查詢,通常95%以上都是落在了內(nèi)存cache中,真正執(zhí)行查詢的并不多。

其實,無論是單臺機器或者一個集群,在高并發(fā)請求場景下,重啟或者切換,都存在這個風(fēng)險,解決的途徑主要是兩種:

(1)請求逐步增加,從少到多,逐步積累熱點數(shù)據(jù),最終達到正常服務(wù)狀態(tài)。
(2)提前準備好“常用”的數(shù)據(jù),主動對服務(wù)做“預(yù)熱”,預(yù)熱完成之后,再開放服務(wù)器的訪問。

TCP負載均衡原理上和LVS等是一致的,工作在更為底層,性能會高于原來HTTP負載均衡不少。但是,不會比LVS更為出色,LVS被置于內(nèi)核模塊,而Nginx工作在用戶態(tài),而且,Nginx相對比較重。另外一點,令人感到非??上?,這個模塊竟然是個付費功能。

相關(guān)文章

  • Nginx下讓W(xué)ordPress支持固定鏈接的偽靜態(tài)規(guī)則

    Nginx下讓W(xué)ordPress支持固定鏈接的偽靜態(tài)規(guī)則

    Nginx下讓W(xué)ordPress支持固定鏈接的偽靜態(tài)規(guī)則,要讓nginx支持wordpress固定鏈接非常簡單,需要自己進行添加點配置代碼
    2013-02-02
  • nginx使用內(nèi)置模塊配置限速限流的方法實例

    nginx使用內(nèi)置模塊配置限速限流的方法實例

    Nginx現(xiàn)在已經(jīng)是最火的負載均衡之一,在流量陡增的互聯(lián)網(wǎng)面前,接口限流也是很有必要的,尤其是針對高并發(fā)的場景,下面這篇文章主要給大家介紹了關(guān)于nginx使用內(nèi)置模塊配置限速限流的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • nginx對http請求處理的各個階段詳析

    nginx對http請求處理的各個階段詳析

    這篇文章主要給大家介紹了關(guān)于nginx對http請求處理的各個階段分析的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • nginx下部署vue項目的方法步驟

    nginx下部署vue項目的方法步驟

    這篇文章主要介紹了nginx下部署vue項目的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 解決nginx“504?Gateway?Time-out”錯誤

    解決nginx“504?Gateway?Time-out”錯誤

    這篇文章介紹了解決nginx“504?Gateway?Time-out”錯誤的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Ubuntu下搭建與配置Nginx服務(wù)

    Ubuntu下搭建與配置Nginx服務(wù)

    這篇文章介紹了Ubuntu下搭建與配置Nginx服務(wù)的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Linux部署Nginx實現(xiàn)反向代理的方法步驟

    Linux部署Nginx實現(xiàn)反向代理的方法步驟

    Nginx 是一種常用、輕型且快速的 Web 服務(wù)器, 它可以在 Linux 和 Windows 上運行,并且可以配置為反向代理服務(wù)器,本文主要介紹了Linux部署Nginx實現(xiàn)反向代理的方法步驟,感興趣的可以了解一下
    2023-08-08
  • Nginx網(wǎng)站服務(wù)過程詳解

    Nginx網(wǎng)站服務(wù)過程詳解

    Nginx是一款高性能、異步非阻塞工作模式、輕量級Web服務(wù)軟件,這篇文章主要介紹了Nginx網(wǎng)站服務(wù)的相關(guān)知識,需要的朋友可以參考下
    2023-06-06
  • 使用nginx.exe時閃退的原因和解決方法

    使用nginx.exe時閃退的原因和解決方法

    最近使用老師給的nginx.exe時,點擊nginx.exe突然屏幕就閃一下,經(jīng)過一番排查,發(fā)現(xiàn)是端口被占用所導(dǎo)致的,所以本文就給大家講講端口被占用時的解決方法詳細步驟,需要的朋友可以參考下
    2023-07-07
  • 詳解Nginx 工作原理

    詳解Nginx 工作原理

    這篇文章主要介紹了Nginx 工作原理,幫助大家更好的理解和學(xué)習(xí)nginx,感興趣的朋友可以了解下
    2020-10-10

最新評論