Nginx 服务器的反向代理服务是其最常用的重要功能,问什么是反向代理,我们先用一句话说明什么是代理。
代理就是供给方和需求方的中间人,如房屋中介就是代理,中介把供给资源和需求资源统一化接口,让供给和需求都面向单接口对接。这样就可以让需求和供给方减少操作成本。
在程序编写过程中,接口就是代理,如我们定义一个vehicle的接口,抽象出方法,如run(),speed()方法等,调用者和实现者都面向接口,这样会有一个比较快捷的交接效率。
什么是正反向代理呢?我们直接说反向代理,正向相反而已。
我们直接拿我们的服务端和客户端来说,客户端是需求方,服务端是供给方。nginx就是中介代理。nginx把供给方(如多个后端服务器)的信息统一化,让需求方看就是一个站点。
如后台有两台机器。
A服务器放着id为奇数的文章
B服务器放着id为偶数的文章
nginx对外提供的是www.cot.com/post/{id} 的地址。具体访问哪个机器,nginx来做处理和转发。这就是反向代理。
正向是以客户端为内容提供方,不过我们也很少用,这里不做介绍。
如何配置反向代理
我比较熟悉的是基础的一个配置,在location中配置proxy_pass URL;
其它的方式还有很多,这里我们只记录一个概念,需要的时候百度反向代理文档即可。
location id=奇数{
proxy_pass 服务器A; #如果id是奇数,就去A机器寻找内容
}
location id=偶数{
proxy_pass 服务器B; #如果id是偶数,就去B机器寻找内容。
}
类似于这种伪代码,其实也有负载均衡的效果。