正向代理:需要客户端主动设置代理服务器IP或域名进行访问,由设置的服务器IP或域名去获取访问内容并返回给客户端。
定义:正向代理是客户端请求代理服务器,然后由代理服务器代表客户端向目标服务器发起请求,目标服务器返回的数据经由代理服务器返回给客户端。
特点:
客户端发起:客户端知道代理的存在,并且需要通过代理来访问目标服务器。
隐藏真实IP:目标服务器无法看到客户端的真实IP地址,只有代理服务器的IP地址。
用途:
常用于突破网络限制、访问被屏蔽的网站、加速访问等场景。
示例:
访问某些被防火墙阻止的网站。
我们常说的代理也就是指正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。
* 可以到达远方,不可描述
* 可以做缓存,加速访问资源
* 对客户端访问授权,上网进行认证
* 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
正向代理主要用于突破网络访问限制,如学术上网,以及隐藏客户端IP地址。在配置正向代理时,可以使用以下代码示例:
http { # 定义代理服务器地址 proxy_pass http://example.com; # 其他配置项...
}
反向代理:反向代理不需要客户端做任何设置,直接访问服务器真实IP或域名,但是服务器内部会自动根据访问内容进行跳转及内容返回。
定义:反向代理是客户端直接向代理服务器发起请求,代理服务器再将请求转发到后端的目标服务器。目标服务器将响应返回给代理服务器,然后代理服务器将响应返回给客户端。
特点:
服务器发起:客户端不需要知道后端的真实服务器,所有请求都通过反向代理。
隐藏后端服务器:反向代理可以隐藏后端服务器的真实IP地址,保护内部网络。
负载均衡和缓存:反向代理常用于负载均衡、SSL终止、缓存加速等目的。
示例:
网站使用反向代理服务器来处理所有的用户请求,并将请求分发到多个后端应用服务器。
因为反向代理隐藏了真实的服务端,当我们请求一个网站的时候,背后可能有成千上万台服务器为我们服务,但具体是哪一台,我们不知道,也不需要知道,我们只需要知道反向代理服务器是谁就好了,反向代理服务器会帮我们把请求转发到真实的服务器那里去。
* 保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网
* 负载均衡,通过反向代理服务器来优化网站的负载
反向代理主要用于提供负载均衡和安全防护,例如将防火墙后面的服务器提供给Internet用户访问。在配置反向代理时,可以使用以下代码示例:
http { # 定义代理服务器地址 upstream backend { server backend1.example.com; server backend2.example.com; } # 其他配置项... server { # 监听端口 listen 80; # 代理到后端服务器 location / { proxy_pass http://backend; } }
}
正向代理即是客户端代理,代理客户端,服务端不知道实际发起请求的客户端。
反向代理即是服务端代理,代理服务端,客户端不知道实际提供服务的服务端。