說一說Nginx Proxy配置

代理模塊

ngx_http_proxy_module

代理配置

代理
Syntax:     proxy_pass URL;                #代理的後端服務器URL
Default:    —
Context:    location, if in location, limit_except

頭信息
Syntax:     proxy_set_header field value;
Default:    proxy_set_header Host $proxy_host;      #設置真實客戶端地址
            proxy_set_header Connection close;
Context:    http, server, location

超時
Syntax:     proxy_connect_timeout time;
Default:    proxy_connect_timeout 60s;              #鏈接超時
Context:    http, server, location

Syntax:     proxy_read_timeout time;
Default:    proxy_read_timeout 60s;
Context:    http, server, location

Syntax:     proxy_send_timeout time; #nginx進程向fastcgi進程發送request的整個過程的超時時間
Default:    proxy_send_timeout 60s;
Context:    http, server, location

啓用nginx proxy代理

虛擬兩臺nginx服務器192.168.72.145 192.168.72.159

nginx01服務器有網站內容,作爲公司網站服務器

nginx02服務器作爲代理服務器!

注意:proxy_pass http://填寫nginx01服務器地址

nginx proxy 具體配置詳解

proxy_pass :真實服務器的地址,可以是ip也可以是域名和url地址
proxy_set_header:重新定義或者添加發往後端服務器的請求頭
proxy_set_header X-Real-IP :啓用客戶端真實地址(否則日誌中顯示的是代理在訪問網站)
proxy_set_header X-Forwarded-For:記錄代理地址
proxy_connect_timeout:後端服務器連接的超時時間發起三次握手等候響應超時時間
proxy_send_timeout:後端服務器數據回傳時間就是在規定時間之內後端服務器必須傳完所有的數據
proxy_read_timeout :nginx接收upstream(上游/真實) server數據超時, 默認60s, 如果連續的60s內沒有收到1個字節, 連接關閉。像長連接

使用PC客戶端訪問nginx02服務器地址

看web應用服務器(nginx01)日誌文件


可以看到代理服務器地址,但是客戶機請求來源地址沒有顯示。

關於nginx獲取真實ip,proxy_set_head設置頭部信息的理解

注意
關於客戶端請求web服務的反向代理和負載均衡在web服務器中的日誌文件中顯示請求來源ip問題,需詳細瞭解proxy_set_header X-Real-IP、proxy_set_header X-Forwarded-For配置。

$proxy_add_x_forwarded_for
$http_x_forwarded_for

這兩個的變量的值的區別,就在於,proxy_add_x_forwarded_for 比http_x_forwarded_for 多了一個$remote_addr的值,但是$remote_addr 只能獲取到與服務器本身直連的上層請求ip,所以設置$remote_addr一般都是設置第一個代理上面。但是問題是,有時候是通過cdn訪問過來的,那麼後面web服務器獲取到的,永遠都是cdn 的ip 而非真是用戶ip,那麼這個時候就要用到X-FORward—for了,這個變量的意思,其實就像是鏈路反追蹤,從客戶的真實ip爲起點,穿過多層級的proxy ,最終到達web 服務器,都會記錄下來。所以在獲取用戶真實ip的時候,一般就可以設置成,proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 這樣就能獲取所有的代理ip 客戶ip 。

參考
--https://blog.51cto.com/wks97/2084302
--https://blog.csdn.net/ywh147/article/details/9275145?utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~BlogCommendFromMachineLearnPai2~default-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~BlogCommendFromMachineLearnPai2~default-1.control

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章