梗概
- 服务端根据客户端的请求信息(源IP等、请求域名)转向不同的服务
详解
反向代理一般通过Nginx搭建的,比如说你在服务器用Nginx开了80端口。 你有两个域名都解析成你服务器的IP地址, 通过两个域名分别访问80端口,Nginx可以根据你的规则把不同源ip、不同域名… 过来数据转发到其他端口或者其他主机,这样好处就是一个端口可以配置N个服务。 当然Nginx功能不止这个功能,它很强大。
虚拟主机 vs 反向代理
虚拟主机
- 定义:所有网站都在同一台服务器上,Nginx根据访问的域名(
server_name),从服务器本地的不同文件夹返回对应的静态资源 - 示例:服务器A上有
a.com和b.com两个网站的文件,用户访问哪个域名,Nginx就从服务器A上对应的文件夹里拿文件返回 - 特点:单台服务器,本地文件服务
反向代理
- 定义:Nginx所在的服务器收到请求后,转发给其他服务器处理,由后端服务器处理后再通过Nginx返回结果
- 示例:用户访问
a.com/api时,Nginx把请求转发给服务器B上的后端程序处理,服务器B处理完结果通过Nginx返回 - 特点:多台服务器,请求转发服务
示例
- qql1.com与qql2.com都指向了同一个IP和port,这个port上有Nginx反向代理服务
- 则该服务会把qql1.com和qql2.com导向不同的服务器
- 也可以把qql1.com与qql2.com都导向相同的服务器 ^2pjwla
- 但转发后的流量中携带来源域名信息