反向代理实验
环境准备
准备3台linux机器,分布式安装好nginx服务,nginx支持web服务器以及反向代理
lb01 192.168.178.123 nginx负载均衡
web01 192.168.178.125 提供静态页面的nginx
web02 192.168.178.126 提供静态页面的nginx
1、修改第一个nginx web服务器的配置,定义好日志记录功能以及日志格式
配置nginx的access.log查看代理ip走向
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
server {
listen 80;
server_name mp3.yu.com;
charset utf-8;
access_log logs/access.log.mp3 main;
location / {
root html/mp3;
index index.html index.htm;
}
}
修改第二个web服务器的配置同上
分别的实时监测日志的内容,查看用户请求的信息
使用tail -f access.log.mp3,然后分别给web服务器发出请求即可
通过负载均衡发出请求,查看反向代理过程
对lb01的配置文件进行修改
server {
listen 80;
server_name lb.yu.com;
access_log logs/access.log.lb01 main;
location / {
proxy_pass http://my_web;
proxy_set_header Host $host;
}
}
反向代理:nginx的负载均衡器的ip负载接收请求,然后发送给后面的真实服务器来工作。负载均衡器得到请求之后,给真实的服务器再发送请求。用户不需要知道是哪个服务器给你提供工作
测试访问查看结果
通过本地机器访问 lb01,查看请求的反向代理与分发,并且观察日志
此时在web服务器上,发现nginx抓到的是 lb01 代理机器的地址信息,那么如果我想抓到真实的客户端ip该怎么办?
curl 192.168.178.123
lb01
192.168.178.1 - - [07/Mar/2022:19:09:01 +0800] "GET / HTTP/1.1" 200 17 "-" "curl/7.80.0" "-"
web01
192.168.178.123 - - [07/Mar/2022:19:09:02 +0800] "GET / HTTP/1.0" 200 17 "-" "curl/7.80.0" "-"
网友评论