首頁 後端開發 php教程 Nginx系列(十三 nginx負載平衡)

Nginx系列(十三 nginx負載平衡)

Aug 08, 2016 am 09:24 AM
fastcgi server upstream

一.负载均衡配置

<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教程有兴趣的朋友有所帮助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

如何安裝、解除安裝、重設Windows伺服器備份 如何安裝、解除安裝、重設Windows伺服器備份 Mar 06, 2024 am 10:37 AM

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

nginx upstream如何開啟keepalive nginx upstream如何開啟keepalive May 14, 2023 pm 07:04 PM

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和後端

Windows Server 2025預覽版迎來更新,微軟改善Insiders測試體驗 Windows Server 2025預覽版迎來更新,微軟改善Insiders測試體驗 Feb 19, 2024 pm 02:36 PM

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

Nginx中的FastCGI怎麼設定最佳化 Nginx中的FastCGI怎麼設定最佳化 May 21, 2023 am 08:16 AM

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

怎麼修改Nginx版本名稱偽裝任意web server 怎麼修改Nginx版本名稱偽裝任意web server May 14, 2023 pm 09:19 PM

如何修改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

微軟發布 Windows Server vNext 預覽版 25335 微軟發布 Windows Server vNext 預覽版 25335 Jan 10, 2024 am 08:49 AM

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

在Ubuntu Server 11.04上安裝GNOME 3的步驟 在Ubuntu Server 11.04上安裝GNOME 3的步驟 Dec 31, 2023 pm 03:59 PM

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

微軟發布 Windows Server 26080 預覽版更新:修復 Feedback Hub 故障 微軟發布 Windows Server 26080 預覽版更新:修復 Feedback Hub 故障 Mar 14, 2024 pm 07:11 PM

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

See all articles