正向代理
正向代理是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
浏览器中输入http://192.168.184.128/proxy_baidu/ 即可访问到百度主页
用户想要访问某国外网站,该网站无法在国内直接访问,但是我们可以访问到一个代理服务器,这个代理服务器可以访问到这个国外网站。这样呢,用户对该国外网站的访问就需要通过代理服务器来转发请求,并且该代理服务器也会将请求的响应再返回给用户。这个上网的过程就是用到了正向代理。
server { listen 80; server_name 192.168.184.128; location /proxy_baidu/ { proxy_pass http://baidu.com/; } }
反向代理
反向代理实际运行方式是代理服务器接受网络上的连接请求。它将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给网络上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
在一台服务器上部署两个tomcat,用nginx做反向代理(负载均衡),nginx配置如下
tomcat的两个端口为:8080,8081;nginx监听8090端口请求,将请求交给tomcat两个端口处理
下面在浏览器输入http://192.168.184.128:8090/ 就能访问到tomcat主页
upstream tomcatcluster{ server 127.0.0.1:8080; server 127.0.0.1:8081; } server { listen 8090; server_name localhost; location / { proxy_pass http://tomcatcluster; }
相同点
正向代理和反向代理所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端。
不同点
正向代理是客户端的代理,服务器不知道真正的客户端是谁;反向代理是服务器的代理,客户端不知道真正的服务器是谁