用nginx負載均衡,提高并發(fā)

上篇文章說到用ab做壓力測試,單臺服務(wù)器出現(xiàn)cpu瓶頸。
為了提高并發(fā),可以從兩方面擴展,縱向擴展(提升單臺服務(wù)器性能),橫向擴展(增加機器)。
縱向擴展,成本是比較大的,而且容易到頂,隨著業(yè)務(wù)增加,還是撐不住。
所以我們要做分布式方案,這樣可以隨著業(yè)務(wù)擴展,租用更多機器來扛住壓力。

目前軟負載比較簡單的方式就是用nginx了,當(dāng)然你也可以硬負載,不過我沒接觸過,只是聽過而已,據(jù)說很貴。

那我下面就介紹nginx配置方法。
我兩臺機器配置都沒1核1G內(nèi)存。
直接看nginx配置吧

upstream backend // 這個名字隨便起,用于下面做反向代理
{
  server 10.104.136.40; // A機器的地址
  server 10.104.243.10; // B機器的地址
}

// 監(jiān)聽80端口,做反向代理
server {
    listen       80 default_server;
#    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

        location / {
            proxy_pass  http://backend;  // upstream里定義的名字
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            root   html;
            index  index.html index.htm;
        }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }

}

就這樣,reload nginx就生效了,為了測試是否成功負載,可以在兩個應(yīng)用返回不同信息,用瀏覽器訪問,看是否會自動切換。

如果測試時,出現(xiàn)較多的異常,可以查看nginx 的error log,定位問題
如果出現(xiàn)1024 worker_connections are not enough
可以修改/etc/nginx/nginx.conf

events {
    worker_connections 20000;
}

下面為3000個并發(fā),用分布式方案的結(jié)果,比單機平均處理時間降低了1秒。

Concurrency Level:      3000
Time taken for tests:   11.291 seconds
Complete requests:      20000
Failed requests:        0
Total transferred:      2400000 bytes
HTML transferred:       0 bytes
Requests per second:    1771.31 [#/sec] (mean)
Time per request:       1693.658 [ms] (mean)
Time per request:       0.565 [ms] (mean, across all concurrent requests)
Transfer rate:          207.58 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0  204 892.5      0    7028
Processing:     1  279 587.7    134    7020
Waiting:        1  279 587.7    134    7020
Total:          1  483 1111.1    175    8710

Percentage of the requests served within a certain time (ms)
  50%    175
  66%    245
  75%    343
  80%    411
  90%   1187
  95%   1972
  98%   4294
  99%   7279
 100%   8710 (longest request)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容