Nginx系列(十三 nginx負載平衡)
一.负载均衡配置
<code><span># 负载均衡</span><span>upstream</span> webserver { <span>server</span><span>192.168.27.134:8080</span>; <span>server</span><span>192.168.27.135:80</span>; <span>server</span><span>192.168.27.136:80</span>; } <span># 反向代理</span><span>server</span> { <span>listen</span><span>80</span>; <span>server_name</span> www.test01.com; <span>location</span> / { <span>proxy_pass</span><span>http://webserver</span>; <span>proxy_redirect</span><span>off</span>; <span>proxy_set_header</span> Host <span>$host</span>; <span>proxy_set_header</span> X-Real-IP <span>$remote_addr</span>; <span>proxy_set_header</span> X-Forwarded-For <span>$proxy_add_x_forwarded_for</span>; } } <span># web服务器</span><span>server</span> { <span>listen</span><span>8080</span>; <span>server_name</span> www.test01.com; <span>access_log</span> logs/host.access.log main; <span>location</span> / { <span>root</span> /web/www/thinkphp; <span>index</span> index.php index.html index.htm; <span>if</span> (!-e <span>$request_filename</span>) { <span>rewrite</span><span> ^/(.*)$</span> /index.php/<span>$1</span><span>last</span>; } } <span>location</span><span>~ [^/]\.php(/|$)</span> { <span>root</span> /web/www/thinkphp; <span>fastcgi_index</span> index.php; <span>fastcgi_pass</span><span>127.0.0.1:9000</span>; <span>include</span> fastcgi_params; <span>fastcgi_split_path_info</span><span> ^(.+?\.php)(/.*)$</span>; <span>fastcgi_param</span> SCRIPT_FILENAME <span>$document_root</span><span>$fastcgi_script_name</span>; <span>fastcgi_param</span> SCRIPT_NAME <span>$fastcgi_script_name</span>; <span>fastcgi_param</span> PATH_INFO <span>$fastcgi_path_info</span>; <span>fastcgi_param</span> PATH_TRANSLATED <span>$document_root</span><span>$fastcgi_path_info</span>; } }</code>
二. 负载均衡算法
1.轮询 (默认)
<code>upstream webserver { <span>server</span><span>192.168</span><span>.27</span><span>.134</span>:<span>8080</span>; <span>server</span><span>192.168</span><span>.27</span><span>.135</span>:<span>80</span>; <span>server</span><span>192.168</span><span>.27</span><span>.136</span>:<span>80</span>; }</code>
2.weight
<code>upstream webserver { <span>server</span><span>192.168</span><span>.27</span><span>.134</span>:<span>8080</span> weight=<span>1</span>; <span>server</span><span>192.168</span><span>.27</span><span>.135</span>:<span>80</span> weight=<span>2</span>; <span>server</span><span>192.168</span><span>.27</span><span>.136</span>:<span>80</span> weight=<span>2</span>; }</code>
3.ip_hash ( 解决session共享问题)
<code>upstream webserver { ip_hash; <span>server</span><span>192.168</span><span>.27</span><span>.134</span>:<span>8080</span>; <span>server</span><span>192.168</span><span>.27</span><span>.135</span>:<span>80</span>; <span>server</span><span>192.168</span><span>.27</span><span>.136</span>:<span>80</span>; }</code>
4.fair 按后端服务器的响应时间来分配请求,响应时间短的优先分配。(第三方)
<code>upstream webserver { <span>server</span><span>192.168</span><span>.27</span><span>.134</span>:<span>8080</span>; <span>server</span><span>192.168</span><span>.27</span><span>.135</span>:<span>80</span>; <span>server</span><span>192.168</span><span>.27</span><span>.136</span>:<span>80</span>; fair; }</code>
参考:http://wiki.nginx.org/HttpUpstreamFairModule
5.url_hash 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。(第三方)
<code><span>upstream</span> webserver { <span>server</span><span>192.168.27.134:8080</span>; <span>server</span><span>192.168.27.135:80</span>; <span>server</span><span>192.168.27.136:80</span>; <span>hash</span><span>$request_uri</span>; }</code>
参考:http://wiki.nginx.org/HttpUpstreamRequestHashModule
6.一致性hash (第三方)
参考:http://wiki.nginx.org/HttpUpstreamConsistentHash
三.相关配置
Weight:指定轮询权值,Weight值越大,分配到的访问机率截越高,主要用于后端每个服务器性能不均的情况下。
down:表示当前的server暂时不参与负载均衡,通常和ip_hash一起使用。
backup:预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻。
max_fails:在一定时间内(这个时间在fail_timeout参数中设置)检查这个服务器是否可用时产生的最多失败请求数,默认为1。将其设置为0可以关闭检查,这些错误在proxy_next_upstream和fastcgi_next_upstream(404错误不会使max_fails增加)中定义。
fail_timeout:在这个时间内产生了max_fails所设置大小的失败尝试连接请求后这个服务器可能不可用,同样它指定了服务器不可用的时间(在下一次尝试连接请求发起之前),默认为10秒,fail_timeout与前端响应时间没有直接关系,不过可以使用proxy_connect_timeout和proxy_read_timeout来控制。
四.参考资料
http://baidutech.blog.51cto.com/4114344/1033718
http://lobert.iteye.com/blog/1929623
http://blog.csdn.net/poechant/article/details/7256184
以上就介绍了Nginx系列(十三 nginx负载均衡),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

WindowsServerBackup是WindowsServer作業系統自帶的功能,旨在協助使用者保護重要資料和系統配置,並為中小型和企業級企業提供完整的備份和復原解決方案。只有執行Server2022及更高版本的使用者才能使用此功能。在本文中,我們將介紹如何安裝、解除安裝或重設WindowsServerBackup。如何重置Windows伺服器備份如果您的伺服器備份遇到問題,備份所需時間過長,或無法存取已儲存的文件,那麼您可以考慮重新設定WindowsServer備份設定。要重設Windows

nginxupstream開啟keepaliveupstreamtomcat{serverops-coffee.cn:8080;keepalive1024;}server{location/{proxy_http_version1.1;proxy_set_headerConnection"";proxy_passhttp://tomcat;}}nginx在專案中大多數情況下會作為反向代理專案使用,例如nginx後接tomcat,nginx後接php等,這時我們開啟nginx和後端

在發布WindowsServer的build26040版本之際,微軟公佈了該產品的官方名稱:WindowsServer2025。一同推出的,還有Windows11WindowsInsiderCanaryChannel版本的build26040。有些朋友可能還記得,多年前有人成功將WindowsNT從工作站模式轉換為伺服器模式,顯示微軟作業系統各版本之間的共通性。儘管現在微軟的伺服器作業系統版本和Windows11之間有明顯區別,但關注細節的人可能會好奇:為什麼WindowsServer更新了品牌,

fastcgi:fastcgi是從cgi發展改良而來的。傳統cgi介面方式的主要缺點是效能很差,因為每次http伺服器遇到動態程式時都需要重新啟動腳本解析器來執行解析,然後結果會傳回給http伺服器。這在處理高並發訪問時,幾乎是不可用的。另外傳統的cgi介面方式安全性也很差,現在已經很少被使用了。 fastcgi介面方式採用c/s結構,可以將http伺服器和腳本解析伺服器分開,同時在腳本解析伺服器上啟動一個或多個腳本解析守護程式。當http伺服器每次遇到動態程式時,可以直接交付給fastcg

如何修改nginx預設的名稱,可以稍微的偽裝一下,也可以裝x一般來說修改3個位置,一個是nginx.h、另一個是ngx_http_header_filter_module.c、還有一個ngx_http_special_response.c。提示:一般修改都是在nginx編譯之前修改,修改完了之後需要重新編譯程式碼如下:scr/core/nginx.conf#definenginx_version"1.4.7"#definenginx_ver"nginx/"n

微軟在針對桌面端發布Win11預覽版更新的同時,今天也發布了WindowsServer長期服務頻道(LTSC)預覽版Build25335。微軟和以往相同,並未公佈完整的更新日誌,甚至於沒有提供相應的部落格文章。微軟調整了WindowsServer預覽版更新日誌,讓其和Canary頻道版本相同,如果沒有引進新的內容,則不放官方部落格文章。 IT之家註:Server的品牌尚未更新,預覽版仍為WindowsServer2022。此外,微軟將這些版本稱為WindowsServervNext,而不是已經上市的W

如果你認為安裝UbuntuServer11.04版完全沒必要裝圖形介面,更沒有必要裝目前還不是很完善的GNOME3。 。或應該用ARCH+GNOME3搭建。那麼請別繼續浪費時間看下去。前後花了2個晚上和一個白天,重裝了N次。終於有點成果了。不容易啊。廢話少說,正題:硬體:ThinkPadX61一隻,UbuntuServer11.04安裝U盤一隻上網:ADSL(無線,有線)操作:偽程序猿一枚1.插入U盤,重啟筆記本,狂按F12。 (針對X61)2.進入啟動選項介面,選擇USB啟動,然後選擇安裝Ubu

IT之家3月14日消息,微軟今天在桌面端發布Windows11Build26080預覽版更新之外,也更新推出了WindowsServerBuild26080預覽版更新。作為即將推出的WindowsServer長期服務通道(LTSC)的最新預覽版,WindowsServerBuild26080提供了資料中心版和標準版,使用者可以選擇桌面體驗和伺服器核心安裝選項。此版本還包括容器主機的年度通道,以及專門用於虛擬機器評估的Azure版本。 IT之家查詢X社群媒體,用戶回饋點擊右下角的Copilot按鈕,會
