中年一文看懂web服务器、应用服务器、反向代理服务器区别与联系( 四 )

  • 压缩
  • 减速上传
  • 安全防火墙
  • 外网发布
  • 突破互联网封锁
  • 解决跨域问题
  • 反向代理基本工作原理
    一个反向代理服务器的构成和处理过程如下图:
    中年一文看懂web服务器、应用服务器、反向代理服务器区别与联系
    本文插图
    左边淡黄色功能模块对外网报文进行处理 , 右边灰色功能模块针对内网报文进行处理 。
    TCP 监听模块
    监听 TCP 请求 , 这里的请求是指报文内容是某应用层协议(比如 HTTP , FTP , Email 等应用层协议)的请求 。
    至于这里是否会单独产生一个线程来开始处理 , 这个由服务器自己决定 , 目前最流行的是先入消息队列然后异步处理 , 这样能极大提高代理的吞吐量和稳定性 。
    匹配被代理服务器
    代理服务器根据一个表(存放外网 URI 和内网服务器的对应关系 , 通常需人工进行设置) , 如果匹配到则继续处理 , 否则依据外网协议返回错误信息 , 比如 HTTP 协议这返回 404 。
    应用负载均衡策略
    如果比较大型的互联网应用 , 为了整体系统稳定性 , 解决单点问题 , 需要根据自定义策略合理的转发报文给被代理服务器 。 简单的策略是哈希分发或者随机分发 , 一般可以由用户进行配置和选择 。
    预处理
    这里依据协商好的外网应用协议进行解密 , 安全 , 会话 , 解压等处理 。
    新生成网络报文
    这里依据协商好的内网应用协议生成网络报文 , 这里可能会进行加密 , 安全 , 会话 , 压缩等处理 。


    推荐阅读