(五)服务器端的局域网有什么玄机

网络包朝着服务器前进,并通过服务器前面的防火墙、缓存服务器、负载均衡器等。

本章看点

  • Web 服务器的部署地点
  • 防火墙的结构和原理
  • 通过多台 Web 服务器来分担负载
  • 利用缓存服务器分担负载

一、Web 服务器的部署地点

  • 在公司部署,并与路由器直接连接(不推荐,IP 地址有限,而且不安全)
  • 在公司部署,并通过防火墙隔离
  • 部署在接入服务商数据中心

二、防火墙的结构和原理

防火墙的过滤规则

  • 包过滤(主流)
  • 应用层网关
  • 电路层网关

如何设置包过滤的规则

网络包的头部包含了用于控制通信操作的控制信息,比如 MAC 头部,IP 头部,TCP 或者 UDP 头部等。
根据接收方 IP 地址、接收方端口号、发送方 IP 地址、发送方端口号、TCP 控制位可以实现包过滤。

  • 通过 IP 地址过滤不想接收的包
  • 通过端口号限定应用程序(禁止互联网访问部分程序)
  • 通过控制位判断连接方向(禁止服务器主动访问互联网)

通过防火墙

  • 不允许包通过时,包会被丢弃并记录下来
  • 允许包通过时,包就会被转发出去

包过滤并不是防火墙特有的机制,只是规则复杂时,路由器难以维护这些规则,而且路由器难以对被阻止的包进行记录。

防火墙不是绝对安全的

防火墙无法检查包的内容,而且就算检查包的内容,也无法判断是否会对服务器产生影响,所以修复 Web 服务器的 Bug 是最重要的。

三、通过多台 Web 服务器来分担负载

当服务器的访问量上升时,提高服务器的性能仍然不能很好的解决问题,最好的方法是使用多台服务器分担负载的方法更有效。

通过 DNS 服务器来分配

在 DNS 服务器里一个域名对应多个 IP 地址,每次返回的都是不同的,让每台服务器都分担负载。

问题在于,有些操作需要跨越多个网页,必须第一个页面填写用户名和密码,第二个页面填写信用卡号。这时需要在同一台服务器上完成。

使用负载均衡器分配访问

首先将服务器的域名和负载均衡器的 IP 地址注册到 DNS 服务器中,当客户端访问时服务器时,实际访问的是负载均衡器。

负载均衡器会根据服务器的负载状况来分配。当操作需要跨多个页面的时候,根据 Cookie 判断要发往哪一台服务器。

四、使用缓存服务器分担负载

缓存服务器的工作过程

  • 代替 Web 服务器注册到 DNS 服务器
  • 缓存服务器等待客户端的请求
  • 缓存服务器检查内容是否存在
  • 如果不存在,在 HTTP 头部加一个 Via 字段发送给 Web 服务器(根据规则确定要发送给谁)
  • 缓存服务器收到相应内容之后会添加 Via 字段发送给客户端,并将响应消息保存到本地
  • 如果存在,缓存服务器会添加一个 If-Modified-Since 字段并转发给 Web 服务器
  • Web 服务器会返回 304 Not Modified 或者更新后的内容,然后缓存服务器响应客户端

三种代理

  • 正向代理
  • 反向代理
  • 透明代理

五、内容分发服务

有专门的厂商部署服务器,并租借给 Web 服务器的运营者,提供内容分发服务。

缓存服务器可以缓存多个网站的数据,可以提供给多个 Web 服务器运营商共享。

当客户端进行访问时,会找到最近的缓存服务器。

当 Web 服务器的数据更新时,主动告知缓存服务器,而不用缓存服务器每次询问。