文章

使用“反向代理服务器”的优点是什么?

使用“反向代理服务器”的优点是什么?

反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和 Web 服务器之间的中间层。这对于安全方面来说是很好的,特别是当我们使用 Web 托管服务时。

这里,先不考虑负载均衡。

🦅 什么是正向代理?

一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。

  • 客户端才能使用正向代理。
  • 正向代理总结就一句话:代理端代理的是客户端。例如说: 😈 我们使用的翻墙软件,OpenVPN 等等。

🦅 什么是反向代理?

反向代理(Reverse Proxy)方式,是指以代理服务器来接受 Internet上的连接请求,然后将请求,发给内部网络上的服务器并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

反向代理总结就一句话:代理端代理的是服务端。

🦅 请列举 Nginx 和 Apache 之间的不同点?

对比图

  • 轻量级,同样起 web 服务,Nginx 比 Apache 占用更少的内存及资源。
  • 抗并发,Nginx 处理请求是异步非阻塞的,而 Apache 则是阻塞型的,在高并发下 Nginx 能保持低资源低消耗高性能。
  • 最核心的区别在于 Apache 是同步多进程模型,一个连接对应一个进程;Nginx 是异步的,多个连接(万级别)可以对应一个进程。
  • Nginx 高度模块化的设计,编写模块相对简单。

🦅 LVS、Nginx、HAproxy 有什么区别?

  • LVS :是基于四层的转发。
  • HAproxy : 是基于四层和七层的转发,是专业的代理服务器。
  • Nginx :是 WEB 服务器,缓存服务器,又是反向代理服务器,可以做七层的转发。

Nginx 引入 TCP 插件之后,也可以支持四层的转发。

🚀 区别

LVS 由于是基于四层的转发所以只能做端口的转发,而基于 URL 的、基于目录的这种转发 LVS 就做不了。

🚀 工作选择:

HAproxy 和 Nginx 由于可以做七层的转发,所以 URL 和目录的转发都可以做,在很大并发量的时候我们就要选择 LVS ,像中小型公司的话并发量没那么大选择 HAproxy 或者 Nginx 足已。

由于 HAproxy 由是专业的代理服务器配置简单,所以中小型企业推荐使用HAproxy 。

有些使用,使用 HAproxy 还是 Nginx ,也和公司运维对哪个技术栈的掌控程度。掌控 OK ,选择 Nginx 会更加不错。

另外,LVS + Nginx 和 LVS + HAProxy 也是比较常见的选型组合。

更多更详细的对比,感兴趣的胖友,可以看看 《LVS、HAProxy、Nginx 负载均衡的比较分析》

🦅 Squid、Varinsh、Nginx 有什么区别?

三者都实现缓存服务器的作用。所以,本问题所有的视角,都是在作为缓存服务器下来聊。

1、Nginx本来是反向代理/web服务器,用了插件可以做做这个副业(缓存服务器)。

但是本身不支持特性挺多,只能缓存静态文件。

2、从这些功能上,Varinsh 和 Squid 是专业的 Cache 服务,而Nginx 这些是第三方模块完成。

3、Varnish 本身的技术上优势要高于 Squid ,它采用了可视化页面缓存技术。

  • 在内存的利用上,Varnis h比 Squid 具有优势,性能要比 Squid 高。
  • 还有强大的通过 Varnish 管理端口,可以使用正则表达式快速、批量地清除部分缓存
  • Varnish 是内存缓存,速度一流,但是内存缓存也限制了其容量,缓存页面和图片一般是挺好的。

4、Squid 的优势在于完整的庞大的 cache 技术资料,和很多的应用生产环境。

🚀 工作选择:

要做 cache 服务的话,我们肯定是要选择专业的 cache 服务,优先选择Squid 或者 Varnish 。

本文由作者按照 CC BY 4.0 进行授权