1.代理的配置
location / {
proxy_pass http://192.168.0.28;
#通用匹配,將訪問進來的流量全部轉發給"http://192.168.0.28"
proxy_set_header Host $http_host;
#將請求頭部的host在轉發給後端主機的host,原因是客戶端訪問訪問代理服務器是帶域名的,而代理去訪問後端web是用ip訪問的丟失了域名,
所以要給它補上,用於後端虛擬主機識別。
proxy_set_header zhengshiIP $remote_addr;
#$remote_addr請求的ip,將請求的ip賦值給"zhengshiIP",後端服務器在log配置中引用就能得到真實的ip,注意後面引用需要加"http_"
}
2.後端web 配置,日誌的使用
日誌的配置
#日誌配置,最後兩個是添加的默認沒有的,一個是真實ip,一個是訪問的真實url
效果下圖
後端虛擬主機配置
server {
listen 80;
server_name www.333.com;
root /333;
index index.html;
location / {
}
}
#在"/etc/nginx/conf.d" 目錄建立新conf 文件即可,
3.設置查看遞歸訪問ip
實驗拓撲
代理192.168.0.13 配置
location / {
proxy_pass http://192.168.0.25;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
代理192.168.0.25 配置
location / {
proxy_pass http://192.168.0.28;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
查看access.log日誌
4.include 的使用
vim /etc/nginx/proxy_params
#在nginx 的配置目錄裏新增一個配置文件"proxy_params"proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
調用
location / {
proxy_pass http://192.168.0.25;
include proxy_params;
#調用剛纔新增的配置文件,這邊是相對路徑,文件要nginx 的配置文件夾裏,否則就要寫決定路徑
}
#include 可以理解爲函數,把配置段寫在nginx 配置目錄裏,主配置可以多次調用