1. proxy_pass 指令介紹
該指令屬於 http_proxy_module, http_proxy_module 模塊可以將請求轉發到另一台服務器。
在 nginx 反向代理是,會通過 location 功能匹配指定的 URI,然后把接收到的符合匹配 URI的請求通過 proxy_pass 轉移給之前定義好的 upstream 節點池。
2. 使用實例
proxy_pass 的典型使用實例如下
1. 使用 upstream 模塊在 nginx 中定義一組或多組節點服務器組
upstream fd02_mc_server { server 10.21.6.4:88081 max_fails=2 fail_timeout=2; }
2. 通過 proxy_pass 代理方式把網站的請求發送到事先定義好的對應 Upstream 組的名字上
location /fd02_mc { proxy_pass http://fd02_mc_server; include proxy.conf; }
注意上面不僅使用了 proxy_pass 指令還包括 include proxy.conf。
這是因為 http_proxy 模塊還包括一些選項,這些選項在絕大多數情況下都是必須要設置的。
項目中的 proxy.conf 配置如下
# proxy_set_header 表示設置 http 請求 header 項傳給后端的服務器節點 # 下面語句表示當反向代理向下面節點發送請求時,要攜帶主機頭信息 proxy_set_header Host $host; # 該指令指定客戶端請求內容的緩沖區大小. # 如果客戶端請求內容大於緩沖區,整個請求內容或部分請求內容將被寫人臨時文件 client_body_buffer_size 128k; # 表示反向代理與后端節點服務器連接的超時時間,單位 S proxy_connect_timeout 30; # 代理后端服務器的數據回傳時間,規定時間內傳送不完,就會斷開連接 proxy_send_timeout 120; # Nginx 從代理的后端服務器獲取信息的時間 proxy_read_timeout 120; # 設置緩沖區的大小 proxy_buffer_size 32k; # 設置緩沖區的數量和大小 proxy_buffers 4 32k;