比如有30個請求,2臺服務器A(10.0.0.1)和B(10.0.0.2),如果希望A處理10個請求,B處理20個請求,可以這樣定義:

upstream pools{
 server 10.0.0.1 weight=1;
 server 10.0.0.2 weight=2;
}

ip_hash(靜態調度算法)

每個請求按客戶端IP的hash結果分配,當新的請求到達,先將客戶端IP通過哈希算法哈希出一個值,在隨后的分配客戶端請求中,客戶IP的哈希值只要相同,就會被分配到同一臺服務器。

upstream blog_pool{
 ip_hash;
 server 192.168.30.5:80;
 server 192.168.30.6:8090;
}

注意:當使用ip_hash時,不能有weight和backup。

least_conn算法

least_conn算法會根據后端服務器的連接數來覺得分配情況,哪臺服務器連接數最少就分發多的請求。

調度算法除了上面所列的(常用)還有很多,就不一一列舉了。

http_proxy_module模塊

http_proxy_module可以將請求轉發到另外一臺服務器,在反向代理中,會通過location功能匹配指定的URI,然后把收到符合匹配的URI的請求通過proxy_pass拋給定義好的upstream節點池。

http_proxy模塊參數

參數 說明
proxy_set_header 設置http請求header項傳給后端服務器節點,例如:可實現讓代理后端的服務器節點獲取訪問客戶端用戶的真實IP地址
client_body_buffer_size 用于指定客戶端請求主體緩沖區大小
proxy_connect_timeout 表示反向代理后端節點服務器連接的超時時間,即發起握手等候響應的超時時間
proxy_send_timeout 表示代理后端服務器的數據回傳時間,即在規定時間內后端服務器必須傳完所有數據,否則nginx將斷開這個連接
proxy_read_timeout 設置nginx從代理的后端服務器獲取信息的時間,表示連接建立成功后,nginx等待后端服務器的響應時間,其實是nginx已經進入后端的排隊之中等候處理的時間
proxy_buffer_size 設置緩沖區大小,默認該緩沖區大小等于指令proxy_buffers設置的大小
proxy_buffers 設置緩沖區的數量和大小,nginx從代理的后端服務器獲取的響應信息,會設置到緩沖區
proxy_busy_buffers_size 用于設置相同很忙時可以使用的proxy_buffers大小,官方推薦的大小為 proxy_buffers * 2
proxy_trmp_file_write_size 指定proxy緩存臨時文件的大小

proxy_pass使用

格式:proxy_pass URL;

示例如下:

proxy_pass http://blog.syushin.com/;
proxy_pass http://192.168.30.7:8080/uri;
proxy_pass http://tmp/www.sock;

URL可以是域名,IP地址也可以是socket文件。

對于proxy_pass的配置有幾點需要注意:
示例1

location /upload/ {
proxy_pass http://192.168.30.7;
}

示例2

location /upload/ {
proxy_pass http://192.168.30.7/; # 注意多了一個斜桿
}

示例3

location /upload/ {
proxy_pass http://192.168.30.7/blog/;
}

示例4

location /upload/ {
proxy_pass http://192.168.30.7/blog;
}

假如server_name為blog.syushin.com,當請求http://blog.syushin.com/uploa…,上面示例1-4的請求結果是:

示例1:http://192.168.30.7/upload/index.html
示例2:http://192.168.30.7/index.html
示例3:http://192.168.30.7/blog/index.html
示例4:http://192.168.30.7/blogindex.html

贊(0)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » Nginx反向代理與負載均衡實戰篇

登錄

找回密碼

注冊