新聞中心
Linux Nginx 優(yōu)雅的負(fù)載均衡配置

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),翁源企業(yè)網(wǎng)站建設(shè),翁源品牌網(wǎng)站建設(shè),網(wǎng)站定制,翁源網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,翁源網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
負(fù)載均衡是現(xiàn)代網(wǎng)絡(luò)架構(gòu)中的一個(gè)重要概念,它能夠?qū)⒘髁糠峙涞讲煌姆?wù)器上,提高網(wǎng)絡(luò)的效率和穩(wěn)定性。在 Linux 平臺上,Nginx 是一個(gè)非常優(yōu)秀的開源高性能 Web 服務(wù)器,它提供了一系列負(fù)載均衡配置的功能,本文將重點(diǎn)介紹如何在 Linux Nginx 中優(yōu)雅地配置負(fù)載均衡。
一、概述
負(fù)載均衡分為四種類型:輪詢(Round Robin)、IP Hash、Least Connections、URL Hash。在 Nginx 中,輪詢是默認(rèn)的負(fù)載均衡算法。在該算法下,所有請求會被依次分發(fā)到不同的服務(wù)器上,從而實(shí)現(xiàn)負(fù)載均衡。但是,由于不同的服務(wù)器硬件環(huán)境和軟件配置不同,導(dǎo)致某些服務(wù)器的性能可能會優(yōu)于其他服務(wù)器。因此即使使用輪詢負(fù)載均衡,在實(shí)際部署過程中也需要考慮服務(wù)器性能的差異,以優(yōu)化負(fù)載均衡算法的效率。
二、配置負(fù)載均衡
Nginx 提供了多種方式來配置負(fù)載均衡,包括 upstream 指令、keepalive 模塊等。下面將詳細(xì)介紹如何在 Linux Nginx 中配置負(fù)載均衡。
1. upstream 指令
upstream 指令用于定義一組后端服務(wù)器,例如:
“`nginx
http {
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:80 weight=10;
server backend3.example.com:8080;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}
“`
這個(gè)例子中,Nginx 通過 upstream 指令定義了一個(gè)名為 “backend” 的組,包含三個(gè)服務(wù)器。其中,backend1.example.com 的權(quán)重為 5,backend2.example.com 的權(quán)重為 10,后面定義了端口的服務(wù)器將使用默認(rèn)的權(quán)重 1。在 http {} 下的 server {} 中,location / 指令中使用 proxy_pass 指令將請求傳遞給命名為 “backend” 的一組服務(wù)器。
2. keepalive 模塊
keepalive 模塊是一個(gè)有用的工具,它可以緩存同一連接中的多個(gè)客戶請求。這有助于提高負(fù)載均衡的效率。例如:
“`nginx
http {
upstream backend {
server backend1.example.com:80;
server backend2.example.com:80;
server backend3.example.com:80;
}
server {
listen 80;
keepalive_requests 1000;
keepalive_timeout 65;
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Connection “”;
proxy_cache_bypass $http_pragma;
proxy_cache_revalidate on;
proxy_cache_min_uses 2;
proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
proxy_cache_bypass $http_cache_control;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
“`
在此例中,Nginx 在一個(gè)名為 “backend”的組中定義了三個(gè)服務(wù)器。在 http {} 下的 server {} 中,使用 keepalive_requests 和 keepalive_timeout 指令來定義緩存多少個(gè)客戶端請求,并設(shè)置緩存過期時(shí)間。利用同一連接傳遞多個(gè)請求,可以減少 TCP 的連接建立和拆除,從而減少網(wǎng)絡(luò)的開銷。
三、優(yōu)雅重啟 Nginx
Nginx 的優(yōu)雅重啟是一種技巧,它可以在 Nginx 不停止正在服務(wù)的連接和請求的情況下重新啟動。這個(gè)技巧可以大大減少服務(wù)停機(jī)時(shí)間,提高服務(wù)的可用性。例如:
“`bash
sudo nginx -s reload
“`
如果在一直運(yùn)行的 Nginx 服務(wù)的生產(chǎn)環(huán)境中,則在進(jìn)行任何重要的更改或更新之前,請先測試配置文件的正確性。
四、結(jié)論
負(fù)載均衡是現(xiàn)代網(wǎng)絡(luò)架構(gòu)中的一個(gè)重要概念,它可以將流量分配到不同的服務(wù)器上,提高網(wǎng)絡(luò)的效率和穩(wěn)定性。在 Linux 平臺上,Nginx 是一個(gè)非常優(yōu)秀的開源高性能 Web 服務(wù)器,它提供了一系列負(fù)載均衡配置的功能。在本文中,闡述了 upstream 指令和 keepalive 模塊的配置方式,并介紹了如何用優(yōu)雅重啟來保證服務(wù)的可用性。這些技巧有助于您在 Linux Nginx 中優(yōu)雅地配置負(fù)載均衡,提高網(wǎng)絡(luò)效率和穩(wěn)定性。
相關(guān)問題拓展閱讀:
- linux下 nginx 負(fù)載均衡 單獨(dú)訪問服務(wù)器沒問題,通過負(fù)載均衡頁面加載不了,什么原因?
- nginx配置文件詳解
linux下 nginx 負(fù)載均衡 單獨(dú)訪問服務(wù)器沒問題,通過負(fù)載均衡頁面加載不了,什么原因?
我也遇到過此類問題 如果你的代理服務(wù)器能與負(fù)載服務(wù)器ping同的話 并且單獨(dú)訪問負(fù)載服務(wù)器能成功 就看看 upstream中的訪問地址與單獨(dú)訪問的地址是否相同。這個(gè)很關(guān)鍵 負(fù)載服務(wù)器上的war包更好是ROOT形式的。希望能幫到你
這種問題一班來說是配置問題,你可以貼一下配置,
另外配置時(shí)必須保證 ngix 與服務(wù)器能連通才行.
試試把負(fù)載的子服務(wù)器設(shè)置的時(shí)候加上端口號。
nginx配置文件詳解
一、安裝Nginx
在安裝Nginx之前,需確保系統(tǒng)已經(jīng)安裝了gcc、 openssl-devel、 pcre-devel和zlib-devel軟件庫。
其中, _with-http_stub_status_module 可以用來啟用 Nginx 的 NginxStatus 功能,以監(jiān)控 Nginx 的運(yùn)行狀態(tài)。
二、Nginx的配置文件結(jié)構(gòu)
Nginx的配置文件nginx.conf位于其安裝目錄的conf目錄下。
nginx.conf由多個(gè)塊組成,最外面的塊是main,main包含Events和HTTP,HTTP包含upstream和多個(gè)Server,Server又包含多個(gè)location。
main(全局設(shè)置)、server(主機(jī)設(shè)置)、upstream(負(fù)載均衡服務(wù)器設(shè)置)和 location(URL匹配特定位置的設(shè)置)。
1、main塊設(shè)置的指令將影響其他所有設(shè)置。
2、server塊的指令主要用于指定主機(jī)和端口。
3、upstream指令主要用于負(fù)載均衡,設(shè)置一系列的后端服務(wù)器。
4、location塊用于匹配網(wǎng)頁位置。
這四者之間的關(guān)系式:server繼承main,location繼承server,upstream既不會繼承其他設(shè)置也不會被繼承。
在這四個(gè)部分當(dāng)中,每個(gè)部分都包含若干指令,這些指令主要包含Nginx的主模塊指令、事件模塊指令、HTTP核心模塊指令,同時(shí)每個(gè)部分還可以使用其他HTTP模塊指令,例如Http SSL模塊、HttpGzip Static模塊和Http Addition模塊等。
三、Nginx的全局配置
events事件指令是設(shè)定Nginx的工作模式及連接數(shù)上限:
use是個(gè)事件模塊指令,用來指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。
其中select和poll都是標(biāo)準(zhǔn)的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平臺上,而kqueue用在BSD系統(tǒng)中。對于Linux系統(tǒng),epoll工作模式是首選worker_connections也是個(gè)事件模塊指令,用于定義Nginx每個(gè)進(jìn)程的更大連接數(shù),默認(rèn)是1024。
更大客戶端連接數(shù)由worker_processes和worker_connections決定,即Max_client=worker_processes*worker_connections。
在作為反向代理時(shí),max_clients變?yōu)椋簃ax_clients = worker_processes * worker_connections/4。
進(jìn)程的更大連接數(shù)受Linux系統(tǒng)進(jìn)程的更大打開文件數(shù)限制,在執(zhí)行操作系統(tǒng)命令“ulimit -n 65536”后worker_connections的設(shè)置才能生效。
四、下面配置Nginx的HttpGzip模塊。這個(gè)模塊支持在線實(shí)時(shí)壓縮輸出數(shù)據(jù)流。
通過/opt/nginx/in/nginx -V命令可以查看安裝Nginx時(shí)的編譯選項(xiàng),由輸出可知,已經(jīng)安裝了HttpGzip模塊。
五、負(fù)載均衡配置
下面設(shè)定負(fù)載均衡的服務(wù)器列表:
upstream是Nginx的HTTP Upstream模塊,這個(gè)模塊通過一個(gè)簡單的調(diào)度算法來實(shí)現(xiàn)客戶端IP到后端服務(wù)器的負(fù)載均衡。
在上面的設(shè)定中,通過upstream指令指定了一個(gè)負(fù)載均衡器的名稱cszhi.com。這個(gè)名稱可以任意指定,在后面需要的地方直接調(diào)用即可,Nginx的負(fù)載均衡模塊目前支持4種調(diào)度算法。
六、server虛擬主機(jī)配置
下面介紹對虛擬主機(jī)的配置。
建議將對虛擬主機(jī)進(jìn)行配置的內(nèi)容寫進(jìn)另外一個(gè)文件,然后通過include指令包含進(jìn)來,這樣更便于維護(hù)和管理。
server標(biāo)志定義虛擬主機(jī)開始,listen用于指定虛擬主機(jī)的服務(wù)端口,server_name用來指定IP地址或者域名,多個(gè)域名之間用空格分 開。index用于設(shè)定訪問的默認(rèn)首頁地址,root指令用于指定虛擬主機(jī)的網(wǎng)頁根目錄,這個(gè)目錄可以是相對路徑,也可以是絕對路徑。
Charset用于 設(shè)置網(wǎng)頁的默認(rèn)編碼格式。access_log用來指定此虛擬主機(jī)的訪問日志存放路徑,最后的main用于指定訪問日志的輸出格式。
七、location URL匹配配置
URL地址匹配是進(jìn)行Nginx配置中最靈活的部分。 location支持正則表達(dá)式匹配,也支持條件判斷匹配,用戶可以通過location指令實(shí)現(xiàn)Nginx對動、靜態(tài)網(wǎng)頁進(jìn)行過濾處理。使用location URL匹配配置還可以實(shí)現(xiàn)反向代理,用于實(shí)現(xiàn)PHP動態(tài)解析或者負(fù)載負(fù)載均衡。
以下這段設(shè)置是通過location指令來對網(wǎng)頁URL進(jìn)行分析處理,所有擴(kuò)展名以.gif、.jpg、.jpeg、.png、.bmp、.swf結(jié)尾的靜態(tài)文件都交給nginx處理,而expires用來指定靜態(tài)文件的過期時(shí)間,這里是30天。
八、StubStatus模塊配置
StubStatus模塊能夠獲取Nginx自上次啟動以來的工作狀態(tài),此模塊非核心模塊,需要在Nginx編譯安裝時(shí)手工指定才能使用此功能。
stub_status設(shè)置為“on”表示啟用StubStatus的工作狀態(tài)統(tǒng)計(jì)功能。access_log 用來指定StubStatus模塊的訪問日志文件。auth_basic是Nginx的一種認(rèn)證機(jī)制。
auth_basic_user_file用來指定認(rèn)證的密碼文件,由于Nginx的auth_basic認(rèn)證采用的是與Apache兼容的密碼文件,因此需要用Apache的htpasswd命令來生成密碼文件。
然后輸入兩次密碼后確認(rèn)之后添加用戶成功。
要查看Nginx的運(yùn)行狀態(tài),可以輸入
Active connections表示當(dāng)前活躍的連接數(shù),第三行的三個(gè)數(shù)字表示 Nginx當(dāng)前總共處理了34561個(gè)連接, 成功創(chuàng)建次握手, 總共處理了354399個(gè)請求。
最后一行的Reading表示Nginx讀取到客戶端Header信息數(shù), Writing表示Nginx返回給客戶端的Header信息數(shù),“Waiting”表示Nginx已經(jīng)處理完,正在等候下一次請求指令時(shí)的駐留連接數(shù)。
在最后這段設(shè)置中,設(shè)置了虛擬主機(jī)的錯(cuò)誤信息返回頁面,通過error_page指令可以定制各種錯(cuò)誤信息的返回頁面。在默認(rèn)情況下,Nginx會在主目錄的html目錄中查找指定的返回頁面。
特別需要注意的是,這些錯(cuò)誤信息的返回頁面大小一定要超過512K,否者會被ie瀏覽器替換為ie默認(rèn)的錯(cuò)誤頁面。
linux下nginx負(fù)載均衡配置的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux下nginx負(fù)載均衡配置,LinuxNginx優(yōu)雅的負(fù)載均衡配置,linux下 nginx 負(fù)載均衡 單獨(dú)訪問服務(wù)器沒問題,通過負(fù)載均衡頁面加載不了,什么原因?,nginx配置文件詳解的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價(jià)格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動、聯(lián)通機(jī)房等。
標(biāo)題名稱:LinuxNginx優(yōu)雅的負(fù)載均衡配置(linux下nginx負(fù)載均衡配置)
本文網(wǎng)址:http://www.5511xx.com/article/cddpcjc.html


咨詢
建站咨詢
