nginx反向代理如何配置?
在介绍 Nginx 如何做反向代理之前,我先给大家讲讲什么是反向代理。
01 正向代理 VS 反向代理正向代理:需要我们知道被代理服务器的 IP 或者域名,即将配置到代理服务器上,然后我们通过访问代理服务器,最终访问到目标服务器。
反向代理:我们只需要知道代理服务器的 IP 就可以了,代理服务器根据请求进行跳转并返回内容,至于最终是哪台服务器做的处理,我们并不知道。
02 举个例子正向代理:我住在北京,但是想回老家买套房,但是我没办法亲自回老家考察,于是我就派我的管家回老家考察;管家就是正向代理服务器;正向代理服务器代表了客户端,在正向代理的过程中,服务端只和代理服务器打交道(房东只和我的管家谈),并不知道真正的客户端是谁。
反向代理:我住在北京,但是想回老家买套房,但是我没办法亲自回老家考察,于是我打个电话联系了老家的房屋中介去办这件事儿;房屋中介就是反向代理;这里的反向代理,代表的是房东,在反向代理的过程中,客户端只和反向代理服务器打交道,并不知道真正的服务端是谁。
总之,正向代理和客户端是一伙儿的,隐藏了客户端,反向代理和服务端是一伙儿的,隐藏了服务端。
03. 使用 Nginx 实现反向代理Nginx 就是一个开源的、高性能的、可靠的 Http 中间件;它经常被用作 Http 代理、反向代理、负载均衡等等。
使用 Nginx 做反向代理也特别的简单,我们下载并安装好 Nginx 之后,只需要在其配置文件 nginx.conf 中配置代理的目标服务器的地址即可。
3.1 比如我们有三台应用服务器分别是:
10.130.0.1:8080
10.130.0.2:8080
10.130.0.3:8080
3.2 那么在配置文件中的 http 中增加 upstream,并配置三台环境的地址;
#增加 upstream 的配置,其中 myserver 是自己起的名字
upstream myserver{
server 10.130.0.1:8080; #有几套环境,就配置几条
server 10.130.0.2:8080;
server 10.130.0.3:8080;
}
3.3 并在 http.server.location 中增加 proxy_pass 的配置;
location / {
root html;
index index.html index.htm;
proxy_pass http://myserver; #增加,其中 http://myserver 的 myserver 要和上文对应
}
经过这么几步简单的配置,我们就做好了一个反向代理服务器了,当客户端访问代理服务器 http://IP/xxx/xxx (接口地址)时,Nginx 就可以将我们的请求分别转发到 10.130.0.1、10.130.0.2、10.130.0.3 三台服务器上。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注;关注我后,可私信发送数字【1】,获取海量学习资料。Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有