代理服务器之 squid、lvs、nginx、haproxy之间的区别

news2024/9/16 22:45:50

代理服务器之 squid、lvs、nginx、haproxy之间的区别

代理服务可简单的分为正向代理反向代理

1、正向代理

正向代理服务器:squid

用于代理内部网络对 Internet 的连接请求(如 VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标 Web 服务器的 HTTP 请求先发送到代理服务器上,然后由代理服务器去访问 Web 服务器,并将 Web 服务器的 Response 回传给客户端。

2、反向代理:

image.png-13.7kB

与正向代理相反,如果局域网向 Internet 提供资源,并让 Internet 上的其他用户可以访问局域网内资源,也可以设置一个代理服务器, 它提供的服务就是反向代理。反向代理服务器接受来自 Internet 的连接,然后将请求转发给内部网络上的服务器,并将 Response 回传给Internet 上请求连接的客户端。

2.1 squid

最古老的代理服务器

2.2 lvs

  • 优点:抗负载能力强、是工作在网络4层之上仅作分发之用
    • 配置性比较低,这是一个缺点也是一个优点,简单不易出错
    • 工作稳定,抗负载能力很强,有完整的双机热备方案,如LVS(DR)+ Keepalived。
    • 无流量,LVS只分发请求,而流量并不从它本身出去
    • 应用范围比较广,几乎支持所有应用
  • 缺点:
    • 不支持正则表达式处理,不能做动静分离
    • 网站应用比较庞大的话,LVS/DR+Keepalived实施起来比较复杂

2.3 nginx:

  • 优点:
    • 工作在七层之上,针对HTTP做分流策略,正则规则比haproxy更灵活
    • 对网络的稳定性依赖小
    • 安装配置简单
    • 高负载高并发低消耗
    • 不仅能做代理,还可以做web服务器
    • 还能缓存静态网页和图片
    • 社区活跃,第三方模块非常多
  • 缺点:
    • 适应范围较小,仅能支持http、https、Email协议。
    • 对后端服务器的健康检查,只支持通过端口检测,不支持url来检测。

2.4 haproxy:

  • 优点:
    • HAProxy是支持虚拟主机的,可以工作在4、7层(支持多网段)
    • HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导;同时支持通过获取指定的url来检测后端服务器的状态。
    • HAProxy跟LVS类似,本身就只是一款负载均衡软件;单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。
    • HAProxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡
    • HAProxy负载均衡策略非常多,HAProxy的负载均衡算法现在具体有8种
  • 缺点:
    • 不支持POP/SMTP协议
    • 不支持SPDY协议
    • 不支持HTTP cache功能
    • 重载配置的功能需要重启进程
    • 多进程模式支持不够好

3、squid正反向代理区分

  • 正向代理:Squid后面是客户端,客户端上网要通过Squid去上;
  • 反向代理:Squid后面是服务器,服务器返回给用户数据需要走Squid

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/705266.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot 中的 ElasticsearchRepository 是什么,原理,如何使用

Spring Boot 中的 ElasticsearchRepository 是什么,原理,如何使用 简介 Elasticsearch 是一个开源的分布式搜索和分析引擎,可以通过 RESTful API 进行访问。Spring Data Elasticsearch 是 Spring Data 项目的一部分,提供了与 El…

Java线程等待唤醒的三种方法

线程等待唤醒的三种方法 需求:我们实现A线程等待B线程执行完在执行。 Object下面的wait()和notify() 使用Object中的wait()方法让线程等待,使用Object中的notify()方法唤醒线程 public static void main(String[] args) throws InterruptedException…

提高企业云服务性价比,亚马逊云科技为用户提供全面和深入的算力支持

6月27日至28日,2023亚马逊云科技中国峰会于上海顺利召开。在本次峰会上,似乎找寻到了云计算领域竞争对手均日渐成熟,而亚马逊云科技却能一直保持领先地位的原因——过去的十几年里,亚马逊云科技“基于客户需求,快速进行…

django-vue-admin ubuntu 20.04 环境准备 记录

django-vue-admin 运行记录 https://django-vue-admin.com/document/hjbs.html https://django-vue-admin.com/document/hjbs.html https://bbs.django-vue-admin.com/article/9.html https://gitee.com/liqianglog/django-vue-admin/tree/demo_project 1. 安装 ubuntu-20.04…

【八股】【C++】函数与类

这里写目录标题 形参与实参的区别函数调用过程指针和引用当函数参数引用作为函数参数有哪些好处回调函数友元函数重载匹配运算符重载直接初始化与拷贝初始化函数指针C中struct(结构)和class(类)的区别C有哪几种构造函数构造函数的…

中华太极图

python代码: import turtle turtle.circle(100) turtle.color(black,black) turtle.begin_fill() turtle.circle(50,180) turtle.circle(-50,180) turtle.right(180) turtle.circle(100,180) turtle.end_fill() turtle.penup() turtle.goto(0,25) turtle.pendown()…

06_pinctr子系统与gpio子系统

目录 pinctrl子系统简介 I.MX6ULL的pinctrl子系统驱动 PIN驱动程序讲解 设备树中添加pinctrl节点模板 gpio子系统简介 I.MX6ULL的gpio子系统驱动 GPIO驱动程序简介 gpio子系统API函数 设备树中添加gpio节点模板 与gpio相关的OF函数 LED实验 LED灯驱动程序编写 运行…

单片机中断

89C51/52的中断系统有5个中断源 ,2个优先级,可实现二级中断嵌套 。 ( P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。 &…

基于 unity 配置 adb

1.打开环境变量配置path的环境 2 找到自己的unity安装目录,找到对应路径 配置到 path 属性中 C:\~\Editor\2021.3.0f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools 3 应用保存即可

chatgpt赋能python:Win7下Python:轻松实现SEO优化

Win7下Python:轻松实现SEO优化 Python作为一门高级程序语言,不仅广泛应用于人工智能和数据科学领域,也在Web开发中扮演着重要角色。在SEO方面,Python也展现了强大的能力。本文将介绍如何在Win7下使用Python实现SEO优化。 什么是…

chatgpt赋能python:同一行Python给两个变量赋值:如何提高编程效率?

同一行Python给两个变量赋值:如何提高编程效率? 作为Python编程方面经验丰富的工程师,我们都知道Python是一种非常易学易用的编程语言,其灵活性和高效性问题业已广为人知。然而,当我们在同时对多个变量进行赋值时&…

docker学习(一)docker概述

Docker 是什么 Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 可用于…

MobaXterm通过RDP连接Ubuntu

文章目录 RDP,FTP和SSH基础知识通过RDP连接UbuntuUbuntu安装RDP开放RDP默认端口使用MobaXterm进行连接 RDP,FTP和SSH基础知识 RDP, FTP和SSH是计算机网络中常用的远程连接协议,用于在不同计算机之间进行远程访问和文件传输。 RDP (Remote De…

Python L2: String、Class、Json

定义一个Python class class Node:def __init__(self):self.ip ""self.pods []self.count 0 Json 对象(instance) 转 dict 和字符串 n Node() n.count 1 n.ip "127.0.0.1" n.pods ["pod-x", "pod-y", "pod…

uniapp 一键登录

官网文档地址https://uniapp.dcloud.net.cn/univerify.html 一、开发前准备 1、需要先开通uni一键登录服务 开通成功后会得到 apiKey、apiSecret。这2个信息,后续需要配置在uniCloud的云函数里。同时注意保密,这2个信息也是计费凭证 2、开通uniCloud服…

机器学习实战 | emojify 使用Python创建自己的表情符号(深度学习初级)

目录 简介技术流程1. 加载依赖包2. 初始化训练和验证生成器3. 建立网络结构4. 编译和训练模型5. 保存模型权重6. 输出预测结果 完整程序1. train.py程序2. gui.py程序 简介 准备写个系列博客介绍机器学习实战中的部分公开项目。首先从初级项目开始。 本文主要介绍机器学习项目…

.Net 4726.0 Razor编译时的小差异

前言 几个月前在进行着.Net 472到6.0的升级,复用原有代码,在对Razor进行迁移中,发现原运行正常的代码,却存在报错,深入研究发现是Core下对Razor编译有一些变动。 问题复现 472 创建视图 新建.Net Framework下Mvc&#…

常州工学院单片机及应用系统设计2021-2022 学年第 二 学期 考试类型 开卷 课程编码 0302005

第一题 #include "SC95F861x_C.H" #include <INTRINS.H> unsigned char keydata0; void delay(unsigned int timer) //延时函数 { while(timer>0) timer--; } void IOinit() { P5CON0x00; P5PH0x03; P3CON0xFF; P3PH0xFF; } void readke…

字节跳动算法 提前批offer复盘

作者 | zjwang 面试锦囊之面经分享系列&#xff0c;持续更新中 欢迎后台回复"面试"加入讨论组交流噢 写在前面 北航本硕&#xff0c;非科班对搜索推荐比较感兴趣&#xff0c;平时看的文章比较多&#xff0c;所以聊的比较偏这一块大四时一段五个月的nlp方向实习&…

Dlib —— Windows下Vs2017编译dlib源码

Dlib Dlib 是一个现代C工具包&#xff0c;包含机器学习算法和 用于创建复杂软件的工具&#xff0c;C解决现实世界的问题。 它用于工业界和学术界的广泛领域 包括机器人、嵌入式设备、手机和大型高 性能计算环境。Dlib的开源许可允许您在任何应用程序中免费使用它。   Dlib相关…