定义:正向代理是位于客户端和目标服务器之间的服务器,客户端通过代理服务器来访问目标服务器。
例子:假设你是一个学生,想要访问学校图书馆的电子资源,但是这些资源只能在学校内部网络访问。这时,你可以使用学校提供的正向代理服务器。当你在宿舍访问图书馆资源时,你的请求首先发送到代理服务器,代理服务器再将请求转发到图书馆的服务器,获取资源后再返回给你。
特点:
客户端需要知道代理服务器的地址和端口。 代理服务器可以隐藏客户端的真实IP地址。 可以用于访问受限资源或提高访问速度。
公司可能会使用正向代理来控制员工访问外部网站,同时提供内容过滤和访问日志。 用户可能会使用VPN作为正向代理,以绕过地理位置限制,访问某些地区特有的在线内容,也就是我需要用正向代理就是因为我的ip对于那个服务器受限制,然后我需要另一个中间服务器,来隐藏我的ip,然后把我的请求发送到我想要访问的那个服务器
定义:反向代理是位于服务器和客户端之间的服务器,客户端通过反向代理服务器来访问后端的多个服务器。
例子:假设你访问一个大型电商平台,该平台后端有多个服务器处理不同的业务,如商品展示、订单处理、用户管理等。当你发起一个请求时,反向代理服务器会根据请求的内容将请求转发到后端的相应服务器,并将服务器的响应返回给你。
特点:
客户端通常不知道后端服务器的地址和端口。 反向代理服务器可以作为负载均衡器,将请求分发到多个后端服务器。 可以提高安全性,隐藏后端服务器的详细信息。
Nginx配置反向代理:
配置文件中定义server块,使用listen指令监听端口。 使用location块定义请求的处理规则,proxy_pass指令指定后端服务器的地址。
http {
upstream myapp1 {
server backend1.example.com;
server backend2.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}