一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
客户端才能使用正向代理。正向代理总结就一句话:代理端代理的是客户端。例如说:我们使用的OpenVPN 等等。
例如:在大陆访问www.google.com,我们需要一个代理服务器,我们通过代理服务器去访问谷歌,这个过程就是正向代理。
正向代理,代理的是客户端,服务端不知道实际发起请求的客户端
反向代理(Reverse Proxy)方式,是指以代理服务器来接受 Internet上的连接请求,然后将请求,发给内部网络上的服务器并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
反向代理,代理的是服务端,客户端不知道实际提供服务的服务端
都是站在客户端的角度,看代理服务器是帮客户端代理,还是帮服务端代理
正向代理,就是代理服务器代理了客户端,去和目标服务器进行交互。现实生活中的场景:黄牛买票。 反向代理,就是代理服务器代理了目标服务器,去和客户端进行交互。现实生活中的场景:房屋中介。
浏览器访问localhost就会跳转到 http://www.atguigu.com,同时域名没有变化(不支持https)可以有多个server。然后根据策略、调度。
location 是否以“/”结尾,在 ngnix 中 location 进行的是模糊匹配
配置 proxy_pass 时
以下是几种常见的匹配情况:
location /proxy/ {
proxy_pass http://127.0.0.1:8080/;
}
代理到:http://127.0.0.1:8080/abc.html
location /proxy/ {
proxy_pass http://127.0.0.1:8080;
}
相对于第一种proxy_pass缺少/
代理到:http://127.0.0.1:8080/proxy/abc.html
location /proxy/ {
proxy_pass http://127.0.0.1:8080/api/;
}
代理到:http://127.0.0.1:8080/api/abc.html
location /proxy/ {
proxy_pass http://127.0.0.1:8080/api;
}
相对第三种少/
代理到:http://127.0.0.1:8080/apiabc.html
location /proxy {
proxy_pass http://127.0.0.1:8080/api;
}
代理到:http://127.0.0.1:8080/api/abc.html
location /proxy {
proxy_pass http://127.0.0.1:8080/;
}
代理到:http://127.0.0.1:8080//abc.html
注意此处有两个反斜杠//
location /proxy {
proxy_pass http://127.0.0.1:8080;
}
代理到:http://127.0.0.1:8080/proxy/abc.html