真实的 IP

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

先查看一下 api hello 这个服务器的访问日志 ... tail /var/log/nginx/api_access.log .. 你会发现,这条日志的最前面,现在显示的并不是客户的真正的 IP 地址 ..

这个这个连接是由反向代理服务器发出的 .. 也就是,最前面的这块 IP 地址应该是那台反向代理服务器的 IP 地址 .. 因为我们把它们放在了同一台服务器里,所以这个 IP 地址是 127.0.0.1 ,表示本机的环路地址 ..

想在日志里得到用户的真实的 IP ,可以再去设置一下 ... 在这个 hello.conf 里面设置了反向代理的地方 .. 添加一个 proxy_set_header ... 用它设置一下请求的头部信息 .. 设置的头部信息是 X-Real-IP .. 它的值,可以使用 $remote_addr 这个变量来表示 .. 它的值应该就是客户的真实的 IP 地址 ..

再用一下这个指令 .. 添加一个 X-Forwarded-For 这个头部信息 .. 它表示这个转发是为谁做的 .. 它的值设置成 $proxy_add_x_forwarded_for ..

保存 ... 重新加载一下 NGINX ... 回到浏览器 .. 现访问一下这个 hello.dev/api/index.json ... 然后再去查看一下访问的日志 ...

在第二条日志的最后 .. 会出现最初发出请求的那个客户的真实的 IP 地址 ...

这个日志的记录的形式是在 nginx.conf 里面配置的 ... 用的指令是 log_format .. 最后会有一个 $http_x_forwarded_for ... 它的值就是我们在反向代理那里,使用 proxy_set_header 这个指令添加的 X-Forwarded-For 这个头部信息里的内容 ...

真实的 IP《 NGINX:Web 服务器 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点