【Linux】在Ubuntu下部署nginx——nginx的负载均衡

介绍

这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长!

以下为小编最喜欢的两句话:

要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。

一个人为什么要努力? 我见过最好的答案就是:因为我喜欢的东西都很贵,我想去的地方都很远,我爱的人超完美。因此,小编想说:共勉!

本篇文章是小编记录Linux的系统学习

目录

一、负载均衡

1、什么是负载均衡?

2、常见的nginx负载均衡的方式有哪些?

二、负载均衡的实现

1、需求

2、步骤

1、配置多台tomcat应用服务器(小编是在window下一台,linux下一台)

2、在ngnix中增加配置/etc/nginx/sites-available/default(还可在nginx的根目录下的nginx.conf中配置)也可以配置两个及以上的服务如下代码:

 3、nginx负载均衡的参数:

 4、让配置生效,更新配置

 5、访问服务


一、负载均衡

1、什么是负载均衡?

负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

2、常见的nginx负载均衡的方式有哪些?

Nginx提供了多种负载均衡方式,以下是常见的几种方式:

1. 轮询(round-robin):默认的负载均衡策略,即将请求依次分配到不同的后端服务器上。当请求分配到最后一个后端服务器时,统计数据清零,重新从第一个后端服务器开始分配。

2. IP哈希(ip_hash):根据客户端的IP地址进行哈希计算,将同一客户端的请求分配到同一后端服务器上。这种方式可以保证同一客户端的所有请求都会被分配到同一后端服务器上,可以解决某些应用场景下的问题。

3. 最少连接(least_conn):将请求发送到当前连接数最少的后端服务器上。这种方式可以让负载均衡算法选择处理请求最快的服务器,提高系统响应速度。

4. 加权轮询(weight):根据服务器的权重进行请求分配,权重越高的服务器能够处理更多的请求。这种方式可以根据服务器的处理能力分配请求,提高整个系统的性能。

5. 加权最少连接(least_conn + weight):将最少连接方式与加权方式结合使用,基于连接数和服务器权重进行请求的分配,能够选择最快的和处理能力最强的服务器。

当然,Nginx负载均衡还可以设置一些高级选项,如:健康检查、慢启动、最大失败数等。这些高级选项可以保证负载均衡的稳定性和可靠性,提高应用系统的可用性。

总之,Nginx提供了多种负载均衡方式,包括轮询、IP哈希、最少连接、加权轮询和加权最少连接等。根据不同的应用场景和要求,选择合适的负载均衡方式和参数组合,可以实现灵活、高效、稳定的负载均衡。

二、负载均衡的实现

1、需求

nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至tomcat服务器。

eg:

nginx负载均衡服务器:IP地址1:80

tomcat1服务器:http://ip地址2:80

tomcat2服务器:http://IP地址1:8080

2、步骤


1、配置多台tomcat应用服务器(小编是在window下一台,linux下一台)


2、在ngnix中增加配置/etc/nginx/sites-available/default(还可在nginx的根目录下的nginx.conf中配置)
也可以配置两个及以上的服务如下代码:

下面的代码只是一个示例,具体可以根据自己的情况去配置

upstream tomcatserver1 {
# 第一台服务器
upstream tomcatserver1 {
    server 192.168.0.126:8080;
  server 192.168.0.126:8082;
 }
 # 第二台服务器
 upstream tomcatserver2{
    server 192.168.0.126:8082;
     #   server 192.168.3.43:8082; 
 }
 
 server {
        listen       8888;
        server_name  localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            proxy_pass   http://tomcatserver1;             
            index  index.html index.jsp;
        }
    }
 
 server {
        listen       8888;
        server_name  localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            proxy_pass   http://tomcatserver2;
            index  index.html index.jsp;
        }
    }


下图是小编的负载均衡配置

 

 3、nginx负载均衡的参数:

在需要使用负载的Server节点下添加

proxy_pass  http://myServer;(这里的myServer是upstream中所定义的名字)

upstream 每个设备的状态:

down 表示单前的server暂时不参与负载

weight :默认为1.weight越大,负载的权重就越大。

max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

fail_timeout:max_fails 次失败后,暂停的时间。

backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

 4、让配置生效,更新配置


注意:每次更改问配置文件后,一定要核验一下语法是否正确(nginx  -t),否则重启服务报错

可用以下代码进行nginx的重启

/etx/init.d/nginx   restart 

service nginx restart

 5、访问服务


在网页通过http:ip地址/80 回车访问172.1.3.69:8080访问两次之后,再172.1.3.29:8080访问一次

以上就是小编所实践的内容,希望能够帮助到大家,感谢各位大佬的观看!!