nginx负载均衡的原理简介_负载均衡原理

nginx负载均衡的原理简介_负载均衡原理1、Nginx负载均衡的原理是什么?​客户端向反向代理发送请求,接着反向代理根据某种负载机制转发请求至目标服务器(这些服务器都运行着相同的应用),并把获得的内容返回给客户端,期中,代理请求可能根据配置被发往不同的服务器。2、Nginx负载均衡的作用是什么?​负载均衡:分摊到多个操作单元上进行执行,和它的英文名称很匹配。就是我们需要一个调度者,保证所有后端服务器都将性能充分发挥,从而保持服…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1、Nginx负载均衡的原理是什么?

​ 客户端向反向代理发送请求,接着反向代理根据某种负载机制转发请求至目标服务器(这些服务器都运行着相同的应用),并把获得的内容返回给客户端,期中,代理请求可能根据配置被发往不同的服务器。

2、Nginx负载均衡的作用是什么?

​ 负载均衡:分摊到多个操作单元上进行执行,和它的英文名称很匹配。就是我们需要一个调度者,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡。

3、Nginx负载均衡算法有哪些?

  • 源地址哈希法:根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。
  • 轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。
  • 随机法:通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。
  • 加权轮询法:不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。
  • 加权随机法:与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非顺序。
  • 最小连接数法:由于后端服务器的配置不尽相同,对于请求的处理有快有慢,最小连接数法根据后端服务器当前的连接情况,动态地选取其中当前积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。

4、安装nginx并搭建nginx负载均衡

操作系统:CentOS 6

服务器IP:10.0.0.61 10.0.0.62 10.0.0.63

1)安装Nginx并安装依赖

[root@ zhusw07 ~]# yum -y install gcc gcc-c++ pcre-devel zlib-devel

2)上传nginx安装包并解压

[root@ zhusw07 ~]# rz

[root@ zhusw07 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  nginx-1.12.2.tar.gz
[root@ zhusw07 ~]# tar zxf nginx-1.12.2.tar.gz
[root@ zhusw07 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  nginx-1.12.2  nginx-1.12.2.tar.gz

3)切换目录并创建

# 切换目录
[root@ zhusw07 ~]# cd /usr/local/
# 创建目录
[root@ zhusw07 local]# mkdir nginx
[root@ zhusw07 local]# ls
bin  etc  games  include  lib  lib64  libexec  nginx  sbin  share  src
# 复制文件到目录下
[root@ zhusw07 local]# cp -r /root/nginx-1.12.2 /usr/local/nginx/

4)编译并安装

# 切换目录 
[root@ zhusw07 ~]# cd nginx-1.12.2
# 配置和检测环境并编译与编译安装
[root@ chenc01 nginx-1.12.2]# ./configure && make && make install

5)修改配置文件

# 修改文件
[root@ zhusw07 nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
#gzip on;
    upstream wedservers { 
   
        server 10.0.0.62:80;
        server 10.0.0.63:80;
    }
    server { 
   
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log logs/host.access.log main;

        location / { 
   
            proxy_pass http://wedservers;
        }

6)启动nginx

# 启动nginx
[root@ zhusw07 nginx-1.12.2]# /usr/local/nginx/sbin/nginx
# 如果报错执行一下操作
[root@ zhusw07 nginx-1.12.2]# /usr/local/nginx/sbin/nginx -c/usr/local/nginx/conf/nginx.conf
[root@ zhusw07 nginx-1.12.2]# /usr/local/nginx/sbin/nginx -s reload
# 查看nginx进程
[root@ zhusw07 nginx-1.12.2]# ps -ef | grep nginx
root       3616      1  0 11:39 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody     3617   3616  0 11:39 ?        00:00:00 nginx: worker process      
root       3623   1153  0 11:40 pts/1    00:00:00 grep --color=auto nginx

7)配置两台web服务器

# 两台web服务器相同操作配置
[root@ zhusw07 ~]# yum -y install httpd
[root@ zhusw07 ~]# vim /var/www/html/index.html

<h1>Nginx1</h1>
# 重启httpd
[root@ zhusw07 ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: httpd: apr_sockaddr_info_get() failed for zhusw02.localdomain
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
# 访问IP
http://10.0.0.61/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184236.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 一般试卷的纸张大小是多少_考试试卷用的是什么尺寸的纸

    一般试卷的纸张大小是多少_考试试卷用的是什么尺寸的纸展开全部考试试卷常用的是A3尺寸的纸。相当于A4纸的两倍,也就是俗称8开的纸。扩展资料:纸张的规格是指纸张制成后,经过636f70793231313335323631343130323136353331333365666136修整切边,裁成一定的尺寸。过去是以多少“开”(例如8开或16开等)来表示纸张的大小,如今我国采用国际标准,规定以A0、A1、A2、B1、B2……等标记来表示纸张的幅面…

  • redis分布式锁的应用场景_redis为什么可以做分布式锁

    redis分布式锁的应用场景_redis为什么可以做分布式锁“分布式锁”是用来解决分布式应用中“并发冲突”的一种常用手段,实现方式一般有基于zookeeper及基于redis二种。具体到业务场景中,我们要考虑二种情况:一、抢不到锁的请求,允许丢弃(即:忽略)比如:一些不是很重要的场景,比如“监控数据持续上报”,某一篇文章的“已读/未读”标识位更新,对于同一个id,如果并发的请求同时到达,只要有一个请求处理成功,就算成功。用活动图表示如下:二、并发请求,不论哪一条都必须要处理的场景(即:不允许丢数据)比如:一个订单,客户正在前台修改地址,.

  • docker搭建kafka集群

    docker搭建kafka集群docker搭建kafka集群我在M1mbp上使用的以下镜像新建文件zk-kafka-docker-compose.ymlversion:”2″services:zookeeper:user:rootimage:docker.io/zookeeperports:-“12181:2181″environment:-ALLOW_ANONYMOUS_LOGIN=yesvolumes:-zoo

  • 程序员外包平台_人力资源外包和劳务派遣

    程序员外包平台_人力资源外包和劳务派遣程序员接单平台,程序员接单,程序员外包平台,程序员外包

  • SQL 聚合函数之字符串分组合并[通俗易懂]

    SQL 聚合函数之字符串分组合并[通俗易懂]本文介绍了如何通过SQL函数对字符串进行聚合,也就是将多行字符串合并成单个字符串。包括Oracle(LISTAGG函数)、MySQL(GROUP_CONCAT函数)、SQLServer(STRING_AGG函数)、PostgreSQL(STRING_AGG函数)以及SQLite(GROUP_CONCAT函数)的语法和差异。

  • kubeadm 查看创建集群需要的镜像版本,附拉取镜像脚本

    kubeadm 查看创建集群需要的镜像版本,附拉取镜像脚本

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号