Nginx控制連線數
最近管的一台網頁一直被大量連線,由於是用nginx當反向,映射進去裡面的apache,這樣一來外面撐住,裡面apache比較弱就稱不住了,所以同事剛好建議要不要重外面就先擋,後來看了一下資料,官網的建議以下的設定來達到漏桶算法(Leaky Bucket)。
簡單說明就是同一IP取用每秒只允許一條連線執行。不過這個方式連進來會有點慢,圖是一個個出來,所以查了一下,可以加「nodelay」來加速,但這樣似乎會會喪失請連線排程的用意了。 所以目前我是將「rate=1r/s;」的部分拉高,變成「rate=100r/s;」,這樣跑起來不會太慢,也不會一口氣產生太多連線。
參考資料:
http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; ... server { ... location /search/ { limit_req zone=one burst=5; }
簡單說明就是同一IP取用每秒只允許一條連線執行。不過這個方式連進來會有點慢,圖是一個個出來,所以查了一下,可以加「nodelay」來加速,但這樣似乎會會喪失請連線排程的用意了。 所以目前我是將「rate=1r/s;」的部分拉高,變成「rate=100r/s;」,這樣跑起來不會太慢,也不會一口氣產生太多連線。
參考資料:
留言
張貼留言