nginx负载均衡配置

客户端负载均衡 - Ribbon

匿名 (未验证) 提交于 2019-12-02 23:32:01
/*--> */ /*--> */ /*--> */ /*--> */ /*--> */ Ribbon是Netflix公司开源的一个负载均衡的项目(https://github.com/Netflix/ribbon),它是一个基于HTTP、TCP的客户端负载均衡器。 服务端负载均衡 负载均衡是微服务架构中必须使用的技术,通过负载均衡来实现系统的高可用、集群扩容等功能。负载均衡可通过硬件设备及软件来实现,硬件比如:F5、Array等,软件比如:LVS、Nginx等。 /*--> */ /*--> */ /*--> */ /*--> */ /*--> */ 用户请求先到达负载均衡器(也相当于一个服务),负载均衡器根据负载均衡算法将请求转发到微服务。负载均衡算法有:轮训、随机、加权轮训、加权随机、地址哈希等方法,负载均衡器维护一份服务列表,根据负载均衡算法将请求转发到相应的微服务上,所以负载均衡可以为微服务集群分担请求,降低系统的压力 /*--> */ /*--> */ /*--> */ /*--> */ /*--> */ 客户端负载均衡 上图是服务端负载均衡,客户端负载均衡与服务端负载均衡的区别在于客户端要维护一份服务列表,Ribbon从Eureka Server获取服务列表,Ribbon根据负载均衡算法直接请求到具体的微服务,中间省去了负载均衡服务。 Ribbon负载均衡的流程图:

nginx配置+uwsgi+负载均衡配置

匿名 (未验证) 提交于 2019-12-02 21:59:42
location /static{ alias /var/www/myApp/static; } sudo mkdir -vp /var/www/myApp/static/ sudo chmod 777 /var/www/myApp/static/ #工程目录settings下配置静态文件 STATIC_ROOT = '/var/www/myApp/static' STATIC_URL = '/static/' #迁移静态文件 python manage.py collectstatic #settings目录中 DEBUG = Flase ALLOW_HOST = ['*'] location / { proxy_pass http://www.pipixia957.cn:8000; #反向代理设置 proxy_set_header X-real-ip $remote_addr; proxy_set_header Host $http_host; } [uwsgi] http=0.0.0.0:8000 chdir=/home/ubuntu/pro/project wsgi-file=project/wsgi.py processes=2 threads=2 master=True pidfile=uwsgi.pid daemonize=uwsgi.log runserver启动

负载均衡:Linux Virtual Server(lvs)

匿名 (未验证) 提交于 2019-12-02 21:53:52
负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。**** Cluster集群 集群,为解决某个特定问题将多台计算机组合起来形成的单个系统 Linux Cluster 类型: LB : Load Balancing ,负载均衡 HA : High Availiablity ,高可用, SPOF ( single Point Of failure ) MTBF : Mean Time Between Failure 平均无故障时间 MTTR : Mean Time To Restoration ( repair )平均恢复前时间 A = MTBF /( MTBF + MTTR ) ( 0 , 1 ): 99 %, 99.5 %, 99.9 %, 99.99 %, 99.999 % HPC : High - performance computing ,高性能 一、负载均衡LVS基本介绍 LVS 是 Linux Virtual Server 的简称,也就是 Linux 虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,它的官方网是 http : //www.linuxvirtualserver

LVS、HAProxy和Nginx比较

那年仲夏 提交于 2019-12-02 18:15:02
负载均衡 的实现,常见的硬件有比较昂贵的NetScaler、F5、 Radware 和Array等商用的 负载均衡器 ,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用;另外一种就是类似于LVS/ HAProxy 、 Nginx 的基于 Linux 的开源免费的负载均衡软件策略,这些都是通过软件级别来实现,所以费用非常低廉,所以我个也比较推荐大家采用第二种方案来实施自己网站的负载均衡需求。 LVS: 使用 集群技术 和 Linux操作系统 实现一个高性能、高可用的服务器,它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability),感谢 章文嵩 博士为我们提供如此强大实用的开源软件。 LVS的特点是: 1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的; 2、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率; 3、工作稳定,自身有完整的双机热备方案,如LVS+Keepalived和LVS+Heartbeat,不过我们在项目实施中用得最多的还是LVS/DR+Keepalived; 4、无流量

LVS、Nginx、HAProxy网络负载均衡方法比较

落爺英雄遲暮 提交于 2019-12-02 18:14:48
现在网络中常见的的负载均衡主要分为两种:一种是通过 硬件 来进行进行,常见的硬件有比较昂贵的NetScaler、F5、Radware和Array等商用的负载均衡器,也有类似于LVS、Nginx、HAproxy的基于 Linux 的开源的负载均衡策略,商用负载均衡里面NetScaler从效果上比F5的效率上更高。对于负载均衡器来说,不过商用负载均衡由于可以建立在四~七层协议之上,因此适用面更广所以有其不可替代性,他的优点就是有 专业 的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用。 另一种负载均衡的方式是通过 软件 :比较常见的有LVS、Nginx、HAproxy等,其中LVS是建立在四层协议上面的,而另外Nginx和HAproxy是建立在七层协议之上的,下面分别介绍关于 LVS:使用集群 技术 和Linux 操作系统 实现一个高性能、高可用的 服务器 ,它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。 LVS的特点是 : 1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生; 2、 配置 性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率; 3、工作稳定,自身有完整的双机热备 方案 ;

高并发web网站架构设计

谁说我不能喝 提交于 2019-12-02 17:55:31
千万级 PV 规模高性能高并发网站架构 高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”。 如果把来访用户比作来犯的"敌人",我们一定要把他们挡在 800 里地以外,即不能让他们的 请求一下打到我们的指挥部(指挥部就是数据库及分布式存储)。 如:能缓存在用户电脑本地的,就不要让他去访问 CDN/cache。能缓存 CDN/cache 服务器上 的,就不要让 CDN/cache 去访问源(静态 web 服务器)了。能访问静态 web 服务器的,就 不要去访问动态服务器。以此类推:能不访问数据库和存储就一定不要去访问数据库和存储。 高性能高并发高可扩展网站架构访问的几个层次: 第一层: 首先在用户浏览器端,使用 Apache 的 mod_deflate 压缩传输,再比如: expires 功 能,deflate 和 expires 功能利用的好,就会大大提升用户体验效果及减少网站带宽,减少后端 服务器的压力。 提示:有关压缩传输及 expires 功能 nginx/lighttpd 等软件同样也有。 第二层: 静态页面内容缓存,如图片/js/css 等或静态数据 html,这个层面是网页缓存层,比 如 CDN(效果比公司自己部署 squid/nginx/varnish 要好,他们更专业,价格低廉,比如快网 /CC 等,而且覆盖的城市节点更多)。 自己架设 squid

负载均衡方案优缺点对比

↘锁芯ラ 提交于 2019-12-02 17:46:04
负载均衡方案优缺点对比 LVS 优点 1、抗负载能力强、工作在第4层仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;无流量,同时保证了均衡器IO的性能不会受到大流量的影响; 2、工作稳定,自身有完整的双机热备方案,如LVS+Keepalived和LVS+Heartbeat; 3、应用范围比较广,可以对所有应用做负载均衡; 4、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率; 缺点 1、软件本身不支持正则处理,不能做动静分离,这就凸显了Nginx/HAProxy+Keepalived的优势。 2、如果网站应用比较庞大,LVS/DR+Keepalived就比较复杂了,特别是后面有Windows Server应用的机器,实施及配置还有维护过程就比较麻烦,相对而言,Nginx/HAProxy+Keepalived就简单多了。 Nginx 优点 1、工作在OSI第7层,可以针对http应用做一些分流的策略。比如针对域名、目录结构。它的正则比HAProxy更为强大和灵活; 2、Nginx对网络的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势所在; 3、Nginx安装和配置比较简单,测试起来比较方便; 4、可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量; 5

Nginx

寵の児 提交于 2019-12-02 16:07:50
nginx 安装 下载必要组件 nginx下载地址 http://nginx.org/en/download.html pcre库下载地址,nginx需要 http://sourceforge.net/projects/pcre/files/pcre/ zlib下载地址,nginx需要 http://www.zlib.net/ openssl下载地址,nginx需要 https://github.com/openssl/openssl 在同级目录下,解压安装zlib、openssl、pcre 进入nginx目录,进行配置安装 ./configure \ --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-http_flv_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-pcre=../pcre-8.39 \ --with-zlib=../zlib-1.2.8 \ --with-openssl=../openssl-master 下面可直接复制粘贴 ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_flv

Haproxy负载均衡

扶醉桌前 提交于 2019-12-02 14:58:04
Haproxy负载均衡 所需软件参见docker仓库: https://hub.docker.com/_/haproxy 方案: 1.先自己打包一个 Dockerfile : FROM haproxy:1.7 MAINTAINER silly <http://github.com/hunterhug> COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg docker build -t dhaproxy -f Dockerfile . 2.跑起haproxy docker run -it --rm --name my-haproxy dhaproxy -f /usr/local/etc/haproxy/haproxy.cfg haproxy.cfg 如下: #--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global log 127.0.0.1 local2 ###[err warning info debug] #chroot /usr/local/haproxy

负载均衡,分布式,集群的理解,多台服务器代码如何同步

 ̄綄美尐妖づ 提交于 2019-12-02 12:54:34
集群 我们的项目如果跑在一台机器上,如果这台机器出现故障的话,或者用户请求量比较高,一台机器支撑不住的话。我们的网站可能就访问不了。那怎么解决呢?就需要使用多台机器,部署一样的程序,让几个机器同时的运行我们的网站。那怎么怎么分发请求的我们的所有机器上。所以负载均衡的概念就出现了。 负载均衡 负载均衡是指基于反向代理能将现在所有的请求根据指定的策略算法,分发到不同的服务器上。常用实现负载均衡的可以用nginx,lvs。但是现在也有个问题,如果负载均衡服务器出现问题了怎么办?所有冗余的概念就出现了。 冗余 冗余其实就是两个或者多台服务器 一个主服务器,一个从服务器。 假设一个主服务器的负载均衡服务器出现了问题,从服务器能够替代主服务器来继续负载均衡。实现的方式就是使用keepalive来抢占虚拟主机。 分布式 分布式其实就是将一个大项目的拆分出来,单独运行。 举个上面的例子。假设我们的访问量特别大。我们就可以做成分布式,跟cdn一样的机制。在北京,杭州,深圳三个地方都搭建一个一模一样的集群。离北京近的用户就访问北京的集群,离深圳近的就访问深圳这边的集群。这样就将我们网战给拆分3个区域了,各自独立。 再举个例子比如我们redis分布式。redis分布式是将redis中的数据分布到不同的服务器上面,每台服务器存储不同的内容,而mysql集群是每台服务器都放着一样的数据