Nginx代理和路由转发的区别
模拟环境
物理主机IP:192.168.0.102
VMnet8 IP:192.168.1.1
代理虚拟主机IP:192.168.1.5 172.16.1.5
Web虚拟主机IP:172.16.1.7
代理流程
在web01中设置多个站点,每个站点监听不同的端口号,代理服务器lb01通过不同的域名,将请求发送至对应的端口号。
一、搭建代理服务器lb01-192.168.1.5
克隆样板机,设置hostname为lb01,ens33网卡IP为192.168.1.5,ens32网卡IP为172.16.1.5
安装nginx服务,cd至/etc/nginx/conf.d,更改default.conf为default.off,新增proxy.conf,内容如下:
注:proxy_pass 是代理的目标服务器的地址和端口。
proxy_set_header X-Real-IP 是客户端的真实IP,在这里没什么意义。
proxy_set_header Host 是将server_name存储至变量http_host,根据用户访问的域名来匹配连接哪个IP地址。
X-Forwarded-For 能将客户端真实IP保存下来,使得目标服务器识别。(默认目标服务器只能读到代理的IP)
可以将常用参数专门写入一个文件,如/etc/nginx/proxy_params,然后在上图location中写 include proxy_params;
注:时间单位是秒。扩展缓冲区
二、设置物理主机的Hosts文件
路径:C:\Windows\System32\drivers\etc\hosts (修改前将属性中的只读去掉)
添加如下一行:192.168.1.5 www.pm.com blog.pm.com
三、设置web01服务器的nginx自定义配置文件
在/etc/nginx/conf.d下新建proxy.conf,内容如下:
四、在web01中创建网页
五、访问测试