1. 程式人生 > 其它 >pool_allocator 輕量模板記憶體池

pool_allocator 輕量模板記憶體池

一、應用場景

  • 前置閘道器(外網進入內網)
  • 負載均衡(Http協議負載均衡)
  • 反向代理

二、排程演算法

  • 輪詢:"server 192.168.0.100;";按時間順序輪流分配,後端down時自動剔除;
  • 權重:"server 192.168.0.100 weight=1;";按時間順序和權重比例輪流分配,後端down時自動剔除;
  • IP雜湊:"ip_hash;server 192.168.0.100;";按客戶端IP分配,保證後端Session一致;
  • 公平:"fair;server 192.168.0.100;";基於響應時間rt,能者多勞;
  • URL雜湊:"hash_method crc32; hash $request_uri; server 192.168.0.100;";按URL分配,主要應用於後端為快取;

三、實際用例

  • 反向代理伺服器列表、排程演算法配置

    upstream httpd {
    	ip_hash;
    	keepalive 1024;
    	server 192.168.1.100;
    	server 192.168.1.101 down;
    	server 192.168.1.102 max_fails=3;
    	server 192.168.1.103 fail_timeout=20s;
    	server 192.168.1.104 max_fails=3 fail_timeout=20s;
    }
    

    ip_hash:請求排程演算法,預設weight權重輪詢,這裡是ip_hash基於請求hash值排程

    keepalive:保持連線時間

    server:伺服器列表

    down:主機暫停服務

    max_fails:最大失敗次數,超出則暫停服務

    fail_timeout:最大失敗超時時間,超出則暫停服務

  • 代理配置伺服器

    server {
    	listen 80;
    	
    	location / {
    		proxy_set_header Host $http_host;
    		proxy_pass http://httpd;
    	}
    }
    

四、引數列表

引數 用例 描述
allow allow 192.168.0.100; 允許訪問
deny deny all; 禁止所有訪問
access_log access_log /nginx/access.log; 訪問日誌
error_log error_log /nginx/error_log; 錯誤日誌
server 虛擬主機
server_name 域名
root 虛擬主機目錄
index 首頁
event event {
worker_connections 1024;
multi_accept on;
use epoll
}
最大連線數、接受更多連線、使用epoll監控連線