Nginx负载均衡详解_nginx负载均衡配置详解(1)

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

# 添加 html文件并加入内容
echo "<h1>This is 8080 Port</h1>" > /usr/local/tomcat8080/webapps/ROOT/test.html
echo "<h1>This is 8080 Port -------</h1>" > /usr/local/tomcat8080/webapps/ROOT/test.html

启动两个tomcat服务。

#启动tomcat8080
#启动tomcat8080:
/usr/local/tomcat8080/bin/startup.sh
#关闭tomcat8080:
#/usr/local/tomcat8080/bin/shutdown.sh

浏览器直接访问tomcat服务。

在这里插入图片描述

2、Nginx负载均衡配置

第一步:修改Nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf

配置内容如下,以轮询策略为例:

worker_processes  1;

events {
  	worker_connections  1024;
}
 
 
http {
    # upstream模块:自定义服务组名
    upstream my_tomcat_server {
    	 server 192.168.xxx.1xx:8080;
    	 server 192.168.xxx.2xx:8080;
    }

    server {
    	 listen       80;
	     server_name  192.168.xxx.xxx;  # 指定虚拟主机的IP,或者外网域名
    
    	 location / {
    		  root   html;
          	  index  index.html index.htm; 
    		  # proxy\_pass:代理转发,指定我们配置负载均衡的服务名my\_tomcat\_server
    		  proxy_pass http://my_tomcat_server; 
    		  # 增加下面内容
          	  proxy_set_header   Host             $host;
              proxy_set_header   X-Real-IP        $remote\_addr;
              proxy_set_header   X-Forwarded-For  $proxy\_add\_x\_forwarded\_for;
    	 }
    }
}

注意:如果遇到 nginx 配置了https upstream,然后访问跳转失败,直接报404。

解决方法:在nginx的配置文件中添加下面内容。

        # 增加下面内容
        proxy_set_header        Host                    $host;
        proxy_set_header        X-Real-IP               $remote\_addr;
        proxy_set_header        X-Forwarded-For         $proxy\_add\_x\_forwarded\_for;

第二步:重启Nginx

修改 nginx完之后,保存退出,重启Nginx。

/usr/local/nginx/sbin/nginx -s reload

# 先执行停止命令再执行启动命令
[root@centos7 sbin]# /usr/local/nginx/sbin/nginx -s quit
[root@centos7 sbin]# /usr/local/nginx/sbin/nginx

第三步:浏览器访问OK

在浏览器访问:http://192.168.xxx.xxx/test.html时,由于配置的负载均衡会将请求平均分发到到这两台服务器中,所以,访问时会出现不同界面。

在这里插入图片描述

第四步:关闭服务

#关闭Nginx
/usr/local/nginx/sbin/nginx -s quit
#关闭tomcat
/usr/local/tomcat8080/bin/shutdown.sh

三、Nginx负载均衡分配策略介绍

1、轮询[默认]

轮询方式是Nginx负载默认的方式。

该策略会使得每个请求按时间顺序逐一分配到不同的后端服务器,如果其中某个后端服务器 down 掉,该策略能自动从轮询列表中剔除该服务。

轮询方式是将所有请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。

    # upstream模块:自定义服务组名
    upstream my_tomcat_server {
    	 server localhost:8080; # 服务器的ip:port
    	 server 192.168.xxx.xxx:8081;
    }

2、权重(weight)

该策略会指定每个服务的权重比例,权重越高被分配的客户端(请求)也就越多,weight 和访问比率成正比。主要用于后端服务器性能不均的情况。

  • weight指定轮询权值,默认值为1。通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能。

不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。

    upstream my_tomcat_server {
    	 server localhost:8080  weight=2;
    	 server 192.168.xxx.xxx weight=5; # 权重设置为5,5>2,所以请求时会多跳转到这个服务
    }

3、ip_hash(哈希)

该策略会按照每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器。有效解决了动态网页存在的session共享问题。

源地址哈希法:根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

注意:ip_hash和 weight也可以配合使用。

    upstream my_tomcat_server {
		ip_hash;
    	server localhost:8080;
    	server 192.168.xxx.xxx; 
    }
# ip\_hash和 weight也可以配合使用
    upstream my_tomcat_server {
		ip_hash;
    	server localhost:8080  weight=1;
    	server 192.168.xxx.xxx weight=2;
    }

4、最少连接(least_conn)

该策略会将请求分配到连接数最少的服务上。

    upstream my_tomcat_server {
		least_conn;
    	server localhost:8080;
    	server 192.168.xxx.xxx; 
    }

5、第三方策略

Nginx支持集成第三方的策略插件。

比如:

  • fair:此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,即响应时间短的优先分配。比上面更加智能的负载均衡算法。下载安装 Nginx的upstream_fair模块。
  • url_hash:按访问 url的 hash结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率。下载安装 Nginx 的hash软件包。

参考文章:

– 求知若饥,虚心若愚。

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

常适合准备从事Linux平台开发的各类人员。**

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值