代理也称正向代理,是一个位于客户端和目标服务器之间的代理服务器,客户端将发送的请求和指定的目标服务器提交给代理服务器,然后代理服务器向目标服务器发起请求,并将获得的响应结果返回给客户端的过程。 相对于代理服务,反向代理对于客户端而言就是目标服务器,客户端向反向代理服务器发送请求后,反向代理服务器将该请求转发给内部网络上的后端服务器,并将从后端服务器上得到的响应结果返回给客户端。 代理和反向代理两者特性: 安全性:正向代理的客户端能够在隐藏自身信息的同时访问任意网站,这给网络安全带来了极大威胁,而反向代理的客户端只能通过外网来访问代理服务器,并不知道自己访问的是一个代理服务器,反向代理将真正的处理放在内网中,有效提供了网络安全; 功能性:正向代理的主要用途是为在防火墙内的局域网用户提供访问Internet的途径,而反向代理的主要用途是将防火墙后的服务器提供给Internet用户访问,还可以为多个后端服务器提供负载均衡功能和缓存功能等。 反向代理服务器配置:在Nginx服务器中,反向代理的配置非常简单,最主要的指令时:proxy_pass,用于设置后端服务器的地址,该地址中包括传输数据使用的协议,服务器主机名以及可选的URI资源等。 proxy_pass通常在location块中进行设置。 1、准备服务器 准备3台服务器,并且全部安装Nginx服务器。 2、配置反向代理 在其中一台服务器中配置两个不同的域名,用于请求时,将请求代理转发到指定服务器中, 例如:请求http://.test时,将请求代理到32服务器中。 具体配置如下(/usr/local/nginx/conf/nginx.conf): 请求http://test.时,将请求代理到33服务器中。 在物理机hosts文件中配置两个 域名对应的IP地址 重启服务器,通过浏览器验证: test. .test Nginx中对于反向代理的设置还提供了其他辅助指令:
通过proxy_set_header指令的使用,配置实现将客户端IP传递给后端服务器: location / { proxy_pass http://192.168.44.33; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
|
|