目录
反向代理原理
反向代理配置
日志对比
反向代理原理
网站通过代理服务器发布,用户无需得知网站的实际地址,通过代理服务器进行请求与响应。
用户所有的网站请求报文与响应报文都被代理服务器拦截,在网络层将源地址和目的地址进行了修改,对于用户来说实际的响应和请求均是代理服务器,但实际上一次完整的网站页面请求,经过2次的请求与响应。
反向代理配置
server {listen 8084;error_log /var/log/nginx/proxy-error.log notice;access_log /var/log/nginx/proxy-access.log main;location / {proxy_pass http://192.168.2.122:8084; #代理到后端服务器proxy_set_header Host $http_host; #修改请求头,保持客户端的request请求头的Host不变proxy_set_header X-Real-Ip $remote_addr; #修改请求头,记录客户端的真实ipproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #修改请求头,记录每层的代理地址}}
通过反向代理访问web服务器,实际的request请求中的Host是代理服务器,不是客户端的,web服务器无法记录实际的用户请求信息,可以通过修改请求包头,让web服务器记录实际信息。
$http_host:客户端访问的域名;
$remote_addr:客户端ip;
$proxy_add_x_forwarded_for :记录客户端地址,当经过过个代理时,会一层一层记录;
$proxy_add_x_forwarded_for记录客户端的真实ip更好
日志对比
未修改请求包头,代理服务器与web服务器的日志对比
修改请求包头,代理服务器与web服务器的日志对比