制作代理服务器有什么用?

时间:2015-07-01 18:28:25

标签: scala proxy server

我很擅长开发,我将构建一个代理服务器用于工作。我不确定构建代理服务器的是什么,我能找到的任何东西只是告诉我安装一些东西并设置一个;但我希望能够建立自己的。我将在Scala工作,那究竟是什么制作一个,它做了什么?

1 个答案:

答案 0 :(得分:1)

有两种主要的代理:

  1. 反向代理
  2. 转发代理
  3. 这两种代理可能有也可能没有以下增值功能(这是一个样本,而且几乎没有详尽无遗):

    1. 缓存
    2. 过滤
    3. 负载均衡
    4. 容错
    5. 我将假设您要构建HTTP / HTTPS转发或反向代理。

      它是反向代理吗?

      一个或多个应用程序服务器前面的HTTP负载平衡器是反向代理。在这种情况下,后端服务器是固定的,基于标头选择(主机是流行的),或者在负载平衡时从池中选择。后端可以使用相同的协议,也可以使用自定义负载均衡协议。对于你的情况,我建议使用相同的协议,除非有非常令人信服的理由不这样做。

      它是转发代理吗?

      最终用户和Internet之间的HTTP代理是转发代理。在这种情况下,代理建立与所请求域的新连接,并发送其自己的HTTP请求,可能直接复制用户的头和内容。代理可以根据域名,URL,IP地址或内容选择允许或拒绝请求。

      两种代理基本上都做同样的事情:接受入站请求并代表请求者将其发送到目的地。

      简单代理的基本过程如下:

      1. 接受来自请求者的连接
      2. 复制所有请求元数据(标题,参数)
      3. 建立与目的地的连接
      4. 使用该元数据向目的地发送请求
      5. 要使反向代理工作,目标需要是代理进程的参数(配置,代码等)。

        为了使前向代理工作,请求者需要有一个表达目的地的协议。有很多协议:HTTP。 HTTP CONNECT和SOCKS是主要的。在最简单的情况下,客户端通过HTTP连接到代理服务器,并发送他们通常直接发送到目标服务器的相同请求。

        一个小说(据我所知)启用的东西是一个反向代理,它接受来自后端的连接。这将允许无法轻易用于攻击安全区域中后端的DMZ。

        Kate Madsudaira在开源应用程序架构一书中提供了a good description of what proxies do and their benefits at an architectural level

相关问题