nginx负载均衡配置

nginx+tomcat 另类负载均衡

馋奶兔 提交于 2019-12-07 03:45:02
一、部署背景 某服务器A:10.68.4.198 域名:edi.qnb.com ( to mcat应用,web 访问但须帐密认证,其他服务器连接查询却无须认证 ) 因业务需要,需要对A服务器做负载均衡。要求用nginx的upstream模块。A服务器上安装了tomcat和nginx,nginx做转发,将端口80接收到的请求,转发至本机的8080端口上,由tomcat处理。 现有相同配置的服务器B:10.68.4.248,用于做A的负载均衡。 按照一般设置是直接在upstream块中添加如下两句,但是这样。web访问的就会出问题, session丢失 。会一直是登陆界面。然而nginx完美解决了这个问题。那就是用ip_hash。 ip_hash:能够将某个客户端的ip的请求通过哈希算法定位到同一台后端服务器。 upstream edi.qnb.com { ip_hash; server 127.0.0.1:8080; server 10.68.4.248:8080; } 通过ip_hash确实能够解决session丢失的问题。但是相同ip却永远只会调转到一台服务器上,web访问可以负载均衡,那么服务器访问呢?而服务器A大多是其他服务器连接访问。 所以ip_hash只能解决web访问,而不能解决服务器间的访问。 我的思路:和同事讨论后,决定在nginx上配置两个域名。一个用于web访问

nginx+tomcat+memcached负载均衡

守給你的承諾、 提交于 2019-12-06 21:29:38
nginx+tomcat+memcached负载均衡 负载均衡:   负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务 而无 须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。 均衡负载能够平均分配客户请求到服务器列阵,籍此提供快速获取重要数据,解决大量并发访问服务问题。   Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;    Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 <T1> <T2> . \ / . . X . . / \ . <M1> <M2> Tomcat-1 (T1) 将 session 存储在 memcached-2 (T2)上。只有当 M2 不可用时,T1 才将 session 存储在

Nginx的负载均衡

喜你入骨 提交于 2019-12-06 14:02:39
算法介绍 ip_hash算法的原理很简单,根据请求所属的客户端IP计算得到一个数值,然后把请求发往该数值对应的后端。 所以同一个客户端的请求,都会发往同一台后端,除非该后端不可用了。ip_hash能够达到保持会话的效果。 ip_hash是基于round robin的,判断后端是否可用的方法是一样的。 第一步,根据客户端IP计算得到一个数值。 hash1 = (hash0 * 113 + addr[0]) % 6271; hash2 = (hash1 * 113 + addr[1]) % 6271; hash3 = (hash2 * 113 + addr[2]) % 6271; hash3就是计算所得的数值,它只和初始数值hash0以及客户端的IP有关。 第二步,根据计算所得数值,找到对应的后端。 w = hash3 % total_weight; while (w >= peer->weight) { w -= peer->weight; peer = peer->next; p++; } total_weight为所有后端权重之和。遍历后端链表时,依次减去每个后端的权重,直到w小于某个后端的权重。 选定的后端在链表中的序号为p。因为total_weight和每个后端的weight都是固定的,所以如果hash3值相同, 则找到的后端相同。 指令的解析函数

upstream指令及负载均衡方式

帅比萌擦擦* 提交于 2019-12-06 13:03:51
UPSTREAM 语法: upstream name { ... } 默认值: — 上下文: http Defines a group of servers. Servers can listen on different ports. In addition, servers listening on TCP and UNIX-domain sockets can be mixed. 定义一组服务器。 这些服务器可以监听不同的端口。 而且,监听TCP和UNIX域套接字的服务器可以混用。 Example: upstream backend { server backend1.example.com weight=5; server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; server unix:/tmp/backend3; server backup1.example.com backup; } By default, requests are distributed between the servers using a weighted round-robin balancing method. In the above example, each 7 requests will be distributed as

windows下nginx中配置端口转发 ----本文来自转载

[亡魂溺海] 提交于 2019-12-06 11:49:21
什么是端口转发 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 转载原文链接: https://www.cnblogs.com/chanshuyi/p/5113424.html ,感谢原作者,本文仅供学习 存档备用 当 我们在服务器上搭建一个图书以及一个电影的应用,其中图书应用启动了 8001 端口,电影应用启动了 8002 端口。此时如果我们可以通过: localhost:8001 //图书 localhost:8002 //电影 但我们一般访问应用的时候都是希望不加端口就访问域名,也即两个应用都通过 80 端口访问。 但我们知道服务器上的一个端口只能被一个程序使用,这时候如何该怎么办呢?一个常用的方法是用 Nginx 进行端口转发。 Nginx 的实现原理是:用 Nginx 监听 80 端口,当有 HTTP 请求到来时,将 HTTP 请求的 HOST 等信息与其配置文件进行匹配并转发给对应的应用。例如当用户访问 book.douban.com 时,Nginx 从配置文件中知道这个是图书应用的 HTTP 请求,于是将此请求转发给 8001 端口的应用处理。当用户访问 movie.douban.com 时,Nginx 从配置文件中知道这个是电影应用的 HTTP 请求,于是将此请求转发给 8002 端口的应用处理。一个简单的

windows下的nginx应用

主宰稳场 提交于 2019-12-06 04:16:27
摘自: https://www.cnblogs.com/chenhg/p/11960941.html windows下的nginx应用 nginx(背景)     nginx是一个高性能的HTTP服务器,以前我经常在linux系统中配置,主要做反向代理和负载均衡,最近根据业务需要,需要在window中配置反向和负载,下面就介绍一下nginx的安装与使用 nginx介绍  Nginx是一款 轻量级 的 Web 服务器/ 反向代理 服务器及 电子邮件 (IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少, 并发 能力强 并发量在50,000 【官方】 nginx的下载和安装   下载: http://nginx.org/en/download.html   点进去选择版本下载即可:如图                       下载解压:                        进入nginx文件夹,双击nginx.exe即可简单启动【命令在最后会贴出来】            双击后黑窗口闪退,可以在任务管理器中查看nginx进程                        然后在浏览器输入localhost                  nginx的简单启动已经测试通过        注意

windows下的nginx应用

情到浓时终转凉″ 提交于 2019-12-06 03:39:27
nginx(背景)     nginx是一个高性能的HTTP服务器,以前我经常在linux系统中配置,主要做反向代理和负载均衡,最近根据业务需要,需要在window中配置反向和负载,下面就介绍一下nginx的安装与使用 nginx介绍  Nginx是一款 轻量级 的 Web 服务器/ 反向代理 服务器及 电子邮件 (IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少, 并发 能力强 并发量在50,000 【官方】 nginx的下载和安装   下载: http://nginx.org/en/download.html   点进去选择版本下载即可:如图                       下载解压:                        进入nginx文件夹,双击nginx.exe即可简单启动【命令在最后会贴出来】            双击后黑窗口闪退,可以在任务管理器中查看nginx进程                        然后在浏览器输入localhost                  nginx的简单启动已经测试通过        注意:根据不同的系统可能会出现80端口被占用的情况,eg,在win10下,80端口可能被IIS程序占用,只需要改nginx的默认端口就行了 nginx的反向代理     反向代理

Haproxy负载均衡与高可用

风流意气都作罢 提交于 2019-12-06 01:43:44
HAPROXY简介 HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种负载均衡解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上。 2、HAProxy的特点是: 1、HAProxy支持虚拟主机。 2、HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导;同时支持通过获取指定的url来检测后端服务器的状态。 3、HAProxy跟LVS类似,本身就只是一款负载均衡软件;单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。 4、HAProxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,可以用LVS+Keepalived对MySQL主从做负载均衡。 5、HAProxy负载均衡策略非常多,HAProxy的负载均衡算法现在具体有如下8种:   ① roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;   ② static-rr

Nginx——端口负载均衡

允我心安 提交于 2019-12-05 21:28:26
前言 Nginx做的代理后面SpringBoot的项目,1N3T的架构,Tomcat的配置也进行了相应的调优。 配置 这里主要来简单的说下Nginx的端口负载均衡,具体的大家可以参考 Nginx文档 | Nginx 烹调书(Nginx Cookbook 中文版) | Nginx文档 upstream是nignx分配方式,默认是轮询 1. 轮询: 轮询是upstream的默认分配方式,即每个请求按照时间顺序轮流分配到不同的后端服务器,若某个后端服务器挂了,会自动剔除。 2. weight: 按着权重的大小进行轮询。 3. ip_hash: 每个请求按照访问ip的hash结果分配,这样每个访客会固定访问一个后端服务器,可以解决session一致问题。 4. fair: 可以根据页面大小、加载时间长短智能的进行负载均衡,响应时间短的后端服务器优先分配请求。 5. url_hash: 与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。 6. least_conn: 把请求转发给连接数较少的后端服务器 轮询 max_fails=2 fail_timeout=30s 代表在30秒内请求某一应用失败2次,认为该应用宕机,等待30秒再次请求 upstream bakend { server 192.168

nginx 负载均衡

走远了吗. 提交于 2019-12-05 20:43:12
分类 1、轮询法 轮询法,就是将用户的请求轮流分配给服务器,就像是挨个数数,轮流分配。这种算法比较简单,他具有绝对均衡的优点,但是也正是因为绝对均衡它必须付出很大的代价,例如它无法保证分配任务的合理性,无法根据服务器承受能力来分配任务。 2、随机法 随机法,是随机选择一台服务器来分配任务。它保证了请求的分散性达到了均衡的目的。同时它是没有状态的不需要维持上次的选择状态和均衡因子[5]。但是随着任务量的增大,它的效果趋向轮询后也会具有轮询算法的部分缺点。 3、最小连接法 最小连接法,将任务分配给此时具有最小连接数的节点,因此它是动态负载均衡算法。一个节点收到一个任务后连接数就会加1,当节点故障时就将节点权值设置为0,不再给节点分配任务。 最小连接法适用于各个节点处理的性能相似时。任务分发单元会将任务平滑分配给服务器。但当服务器性能差距较大时,就无法达到预期的效果。因为此时连接数并不能准确表明处理能力,连接数小而自身性能很差的服务器可能不及连接数大而自身性能极好的服务器。所以在这个时候就会导致任务无法准确的分配到剩余处理能力强的机器上 官方示例配置及解释 upstream backend { server backend1.example.com weight=5; server backend2.example.com:8080; server unix:/tmp/backend3;