首先,我们来看看《正向代理》。
以前,我们经常会上网搜一些好用的代理,去访问国外的网站,或者是获得更快的页面访问速度。
通常,在局域网配置里,只需设定一个代理(IP + PORT),就能达成目的。
代理服务器 是使用非常普遍的将 局域网主机 联入 互联网 的一种方式。
- 使用代理可以节约IP资源,
- 可以阻断外部主机对内部主机的访问。
此时,客户端的HTTP请求就被发送到代理服务器上,由代理服务器去Internet 请求目标服务器。
如果想让互联网上的主机访问到内部网络的资源,还想避免被攻击,就得考虑使用反向代理了!
那么,什么是《反向代理》?
我们来看一张图片:
反向代理(Reverse Proxy):
- 以 Proxy 来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器(Web server)。
- 将从 内部网络上的服务器(Web server)上得到的结果返回给 internet 上请求连接的 客户端,此时 Proxy 对外就表现为一个服务器。
反向代理就像是在 Web server 和 internet 之间的高速缓冲服务器(见上图中的 Proxy )。
反向代理作用:
- 针对一台或者多台特定的 Web server 提供加速功能的。
- 当互联网用户请求某个域名时,DNS将该 域名解析 到反向代理服务器上,由反向代理服务器与Web server 进行交互。
- 反向代理服务器会根据 Web server 返回的 HTTP头标记 来缓存 静态页面和图片,从而大大的减轻了 Web server 的 负载。
- Web server 只需要处理 动态脚本,将结果返回给反向代理服务器,然后反向代理服务器将结果返回给客户端。
反向代理优点:
- 对外部屏蔽了 Web server 集群,由 Proxy 统一调度请求。
- 大大降低 Web server 集群的负载。
反向代理实例:
通过 Webdis 代理访问 Redis 服务器,返回请求结果!
location / {
proxy_pass http://webdis;
}
upstream webdis {
server 127.0.0.1:7379;
}