2021年1月6日 星期三

nginx upstream設定

透過upstream設定多台服務的負載平衡

以一個網頁的request內用到多個連線 當範例

1.預設

  所有的連線輪詢分配到各主機上

2.least_conn

  將連線給目前連線數最少的主機

2.iphash

  以ip辨識同個ip的request都會進同一台主機


當其中有主機出問題無法服務

會透過以下兩個設定判斷 是否把該台主機排除在負載平衡外


1.fails_timeout:

  當失敗連線間隔這個設定的秒數後, 新進來的連線

  還是會對這台主機進行retry連線

2.max_fails:

  當retry失敗次數達到這個設定最大值

  還無法連線 這台機器就會背排除

以下的範例設定是

當連線失敗10s後 再接到的request會再連線這台主機

當retry達到5次後 還無法連線 這台主機就會被剔除

直到nginx 重啟

upstream myapp {
  #iphash;
  #least_conn;
  server 127.0.0.1:3000 max_fails=5 fails_timeout=10s;
  server 127.0.0.1:3001 max_fails=5 fails_timeout=10s;
}

沒有留言: