使用“反向代理服务器”的优点是什么?
反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和 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 。
