代理与反向代理
代理也被称为正向代理,是一个位于客户端和服务器之间的代理服务器,客户端将发送的请求和指定的目标服务器提交给代理服务器,然后代理服务器向目标服务器发起请求,并将获得相应结果返回给客户端的过程。
相对于代理服务器,反向代理对于客户端而言就是目标服务器,客户端向反向代理服务器发送请求后,反向代理服务器将该请求转发给内部网络上的后端服务器,并将后端服务器上得到的响应结果返回给客户端。
总结
安全性:正向代理的客户端能够在隐藏自身信息的同时访问任意网站,这给网络安全带来了极大地威胁。因此在使用时必须采取安全措施以确保仅为经过授权的客户端用户提供服务。而反向代理的客户端用户只能通过外网来访问代理服务器,并且对用户隐藏具体内部,好处就是反向代理将真正的处理放在了内网,提高网络安全性。
功能性:正向代理的主要用途是为在防火墙内的局域网用户提供访问Internet的途径。而反向代理的主要用途是将防火墙后的服务器提供给Internet用户访问,还可以为多个后端服务器提供负载均衡,缓存功能。
Nginx实现反向代理
在Nginx中,反向代理主要依靠proxy_pass指令,用于设置服务器地址。该地址中包括传输数据使用的协议,服务器主机名以及可选的URI资源等。在Nginx配置中,proxy_pass指令通常放在location块中设置。
- 准备两台安装Nginx的服务器 IP分别为94.191.112.250和59.110.171.154
- 修改Nginx的欢迎页面做标识,在标题后加上本机IP
[root@VM_0_17_centos nginx]# cd html
[root@VM_0_17_centos html]# ls
50x.html index.html
[root@VM_0_17_centos html]# vim index.html
<h1>Welcome to OpenResty - 94.191.112.250</h1>
- IP为94.191.112.250的Nginx服务器作为代理服务器,修改配置文件将请求转发到另一台服务器上
location / {
proxy_pass http://59.110.171.154;
}
- 访问IP为94.191.112.250的服务器
请求已被转发至另一台服务器,反向代理完成
PS:相关指令如下
proxy_set_header:将客户端请求发送给服务端之前,更改来自客户端的请求头信息
proxy_connect_timeout:配置代理服务器与后端服务器之间的连接超时时间
proxy_read_timeout:配置代理服务器向后端服务器发送read请求后,等待响应的超时时间
proxy_send_timeout:配置代理服务器向后端服务器发送wirte请求后,等待响应的超时时间
proxy_redirect:用于修改后端服务器返回的响应头中的Location和Refresh