05 部署Nginx反向代理
01 服务器基本信息
名称 | IP地址 |
---|---|
真实Web服务器 | 172.2.25.10 |
Proxy服务器 | 172.2.25.11 |
02 Proxy基本设置
[root@likexy-nginx-01 conf.d]# pwd
/etc/nginx/conf.d
[root@likexy-nginx-01 conf.d]# cat proxy.conf
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;}
}
# 在Windoes的hosts文件添加# 172.2.25.11 www.wp.proxy.com


# 通过域名访问的

图3 可以看到hosts文件
# 代理服务器向真实服务器访问时丢掉了头部

03 Proxy添加头部访问Web服务器
# 我们需要代理服务器向后端请求带着域名
[root@likexy-nginx-01 conf.d]# cat proxy.conf
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;proxy_set_header Host $http_host; # 携带头部信息}
}
# 头部信息携带了,但是版本由1.1变成了1.0

04 Proxy携带版本信息
[root@likexy-nginx-01 conf.d]# cat proxy.conf
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;proxy_set_header Host $http_host; # 携带头部信息proxy_http_version 1.1; # 设置HTTP版本}
}

05 在Nginx日志添加客户端IP地址
# 但是在日志上面看不到客户端的IP地址,看到的是代理服务器的IP地址
# 最后一个是"-",在nginx配置文件里面写的是"$http_x_forwarded_for",通过代理服务器连接到Web服务器的客户端的原始IP地址# 但是代理服务器没有获取到客户端的IP

[root@likexy-nginx-01 conf.d]# cat proxy.conf
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;proxy_set_header Host $http_host; # 携带头部信息proxy_http_version 1.1; # 设置HTTP版本proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 代理服务器获取客户端IP地址}
}
# 配置完访问就有客户端IP地址了

06 代理到Web的TCP连接,响应,返回时间
[root@likexy-nginx-01 conf.d]# cat proxy.conf
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;proxy_set_header Host $http_host;proxy_http_version 1.1;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 60s; # 连接时间proxy_read_timeout 60s; # 响应时间proxy_send_timeout 60s; # 返回时间}
}
07 代理缓冲区
# 头部信息:就是语言,浏览器信息等

# 主题信息就是访问的网页资源,图片等
[root@likexy-nginx-01 conf.d]# cat proxy.conf
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;proxy_set_header Host $http_host;proxy_http_version 1.1;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 60s;proxy_read_timeout 60s;proxy_send_timeout 60s;proxy_buffering on; # 开启缓冲区proxy_buffer_size 32k; # 头部信息缓冲区大小proxy_buffers 4 128k; # 主体信息缓冲区大小
}
08 设置代理文件
[root@likexy-nginx-01 conf.d]# pwd
/etc/nginx/conf.d
# 把代理需要设置的全部放到一个文件
[root@likexy-nginx-01 conf.d]# cat proxy-data
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;[root@likexy-nginx-01 conf.d]# cat proxy.conf
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;include /etc/nginx/conf.d/proxy-data;}
}