使用nginx进行负载均衡的搭建全过程_nginx

来源:脚本之家  责任编辑:小易  
目录
1. nginx负载均衡介绍2. nginx负载均衡策略2.1 轮询2.1.1 普通轮询方式2.1.2 权重轮询方式2.2 最少连接2.3 ip hash3. nginx负载均衡搭建示例3.1 tomcat配置3.2 nginx配置总结

1. nginx负载均衡介绍

nginx应用场景之一就是负载均衡。在访问量较多的时候,可以通过负载均衡,将多个请求分摊到多台服务器上,相当于把一台服务器需要承担的负载量交给多台服务器处理,进而提高系统的吞吐率;另外如果其中某一台服务器挂掉,其他服务器还可以正常提供服务,以此来提高系统的可伸缩性与可靠性。

下图为负载均衡示例图,当用户请求发送后,首先发送到负载均衡服务器,而后由负载均衡服务器根据配置规则将请求转发到不同的web服务器上。

image-20220430184503049

2. nginx负载均衡策略

以下截图为nginx官网文档

image-20220430184551926

nginx内置负载均衡策略主要分为三大类,分别是轮询、最少连接和ip hash

最少连接

请求分配给活动连接数最少的服务器,哪台服务器连接数最少,则把请求交给哪台服务器,由nginx统计服务器连接数

ip hash

基于客户端ip的分配方式

2.1 轮询

以循环方式分发对应用服务器的请求,将请求平均分发到每台服务器上。

2.1.1 普通轮询方式

该方式是默认方式,轮询适合服务器配置相当,无状态且短平快的服务使用。另外在轮询中,如果服务器挂掉,会自动剔除该服务器。

http {
    # 定义转发分配规则
    upstream myapp1 {
        server srv1.com; # 要转发到的服务器,如ip、ip:端口号、域名、域名:端口号
        server srv2.com:8088;
        server 192.168.0.100:8088;
    }

    server {
        listen 80; # nginx监听的端口

        location / {
        	# 使用myapp1分配规则,即刚自定义添加的upstream节点
        	# 将所有请求转发到myapp1服务器组中配置的某一台服务器上
            proxy_pass http://myapp1; 
        }
    }
}

2.1.2 权重轮询方式

如果在 upstream 中配置的server参数后追加 weight 配置,则会根据配置的权重进行请求分发。此策略可以与least_conn和ip_hash结合使用,适合服务器的硬件配置差别比较大的情况。

# 定义转发分配规则
upstream myapp1 {
	server srv1.com weight=1; # 该台服务器接受1/6的请求量
	server srv2.com:8088 weight=2; # 该台服务器接受2/6的请求量
	server 192.168.0.100:8088 weight=3; # 该台服务器接受3/6的请求量;
}

2.2 最少连接

轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果,适合请求处理时间长短不一造成服务器过载的情况。

# 定义转发分配规则
upstream myapp1 {
	least_conn; # 把请求分派给连接数最少的服务器
	server srv1.com;
	server srv2.com:8088;
	server 192.168.0.100:8088;
}

2.3 ip hash

这个方法确保了相同的客户端的请求一直发送到相同的服务器,这样每个访客都固定访问一个后端服务器。如用户需要分片上传文件到服务器下,然后再由服务器将分片合并,这时如果用户的请求到达了不同的服务器,那么分片将存储于不同的服务器目录中,导致无法将分片合并,该场景则需要使用ip hash策略。

需要注意的是,ip_hash不能与backup同时使用,另外当有服务器需要剔除,必须手动down掉,此模式适合有状态服务,比如session。

# 定义转发分配规则
upstream myapp1 {
	ip_hash; # #保证每个请求固定访问一个后端服务器
	server srv1.com;
	server srv2.com:8088;
	server 192.168.0.100:8088;
}

3. nginx负载均衡搭建示例

该示例使用一台nginx作为负载均衡服务器,两台tomcat作为web服务器;可以把三个服务均在一台机器进行搭建,也可以使用虚拟机虚拟三台机器,然后进行测试。教程这里就只在一台机器进行搭建,采用默认的权重方式进行配置。

3.1 tomcat配置

将两台tomcat解压出来,配置完毕相应的端口,然后在webapps目录下创建test目录,然后在test目录中创建index.html文件,随便写入一些内容,两台tomcat中test目录下的index.html文件内容要区分开来,例如写入1111111 / 222222222,如下图所示。

image-20220430190133097

image-20220430190139573

3.2 nginx配置

首先进行nginx的安装,安装教程可以参考

https://www.zgxue.com/article/231249.htm

安装完毕后,进入nginx目录下的conf目录,编辑 nginx.conf 文件,修改内容为在http节点下增加

upstream tomcat { # 该部分内容与 server 节点同级
	server tomcat服务的ip:tomcat服务的端口号;
	server tomcat服务的ip:tomcat服务的端口号;
}

server节点下的location /节点中,把默认的

location / {
	root   html;
	index  index.html index.htm;
}

修改为

location / {
	proxy_pass http://tomcat;
}

然后启动 两台tomcat与nginx服务,在浏览器输入nginx服务的地址:端口,不停刷新页面,就可以看到每次请求的服务器发生了改变。

总结

到此这篇关于使用nginx进行负载均衡的文章就介绍到这了,更多相关nginx负载均衡内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:nginx 作为反向代理实现负载均衡的例子Nginx负载均衡的4种方案配置实例详解Nginx服务器之负载均衡策略(6种)超级详细的nginx负载均衡配置Nginx负载均衡配置简单配置方法5种nginx负载均衡配置方法分享Nginx实现集群的负载均衡配置过程解析nginx+iis实现简单的负载均衡linux下nginx负载均衡搭建的方法步骤

  • 本文相关:
  • 使用nginx+tomcat实现静态和动态页面的分离
  • keepalived结合nginx实现nginx高可用的方法
  • nginx实现404页面的方法小结
  • 详解nginx高并发场景下的优化
  • nginx中虚拟主机与指定访问路径的设置方法讲解
  • centos下编译安装nginx及配置缩略图插件的方法教程
  • nginx+tomcat实现负载均衡、动静分离的原理解析
  • nginx用户认证配置方法详解(域名/目录)
  • 简介nginx中的location匹配规则
  • nginx-rtmp实现直播媒体实时流效果
  • 网站只要使用了nginx,就是负载均衡吗
  • nginx的负载均衡如何配置?
  • Linux系统NGINX负载均衡404错误处理方法?
  • 如何监控nginx负载是否均衡?
  • nginx 做负载均衡 会分发流量吗
  • 怎么查看nginx是否使用了负载均衡
  • liunx中nginx配置负载均衡要打通虚拟机之间的通信吗?
  • 在nginx负载均衡中怎样謘ession会话的共享
  • 详解下用Tomcat、Nginx结合进行负载均衡来增加系统稳定性和...
  • 详解下用tomcat/nginx结合进行负载均衡来增加系统稳定性和承...
  • 使用nginx负载均衡,webbench做压力测试出现的问题,求助
  • nginx负载均衡的算法怎么实现的
  • nginx实现tomcat集群的负载均衡有几种方式
  • Nginx做负载均衡,调度是使用ip_hash 我用不同机器每次都登陆...
  • 使用NGINX负载均衡配置问题
  • 对websocket 服务器进行压测,nginx 负载均衡,该怎么做
  • 对websocket 服务器进行压测,nginx 负载均衡,该怎么做
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全星外虚拟主机华众虚拟主机linuxwin服务器ftp服务器dns服务器tomcat nginxzabbix云和虚拟化服务器其它首页服务器nginxnginx 作为反向代理实现负载均衡的例子nginx负载均衡的4种方案配置实例详解nginx服务器之负载均衡策略(6种)超级详细的nginx负载均衡配置nginx负载均衡配置简单配置方法5种nginx负载均衡配置方法分享nginx实现集群的负载均衡配置过程解析nginx+iis实现简单的负载均衡linux下nginx负载均衡搭建的方法步骤使用nginx+tomcat实现静态和动态页面的分离keepalived结合nginx实现nginx高可用的方法nginx实现404页面的方法小结详解nginx高并发场景下的优化nginx中虚拟主机与指定访问路径的设置方法讲解centos下编译安装nginx及配置缩略图插件的方法教程nginx+tomcat实现负载均衡、动静分离的原理解析nginx用户认证配置方法详解(域名/目录)简介nginx中的location匹配规则nginx-rtmp实现直播媒体实时流效果nginx提示:500 internal server ernginx 多站点配置方法集合nginx服务器的反向代理proxy_pass配置方法讲解权限问题导致nginx 403 forbidden错误的解决nginx fastcgi错误primary script 详解nginx upstream 配置和作用nginx 403 forbidden的解决办法详解nginx服务器中配置超时时间的方法nginx的超时timeout配置详解nginx伪静态配置和常用rewrite伪静态规则集锦nginx配置之实现多台服务器负载均衡nginx服务器配置文件完全解析nginx外网访问内网站点配置操作nginx + tomcat实现请求动态数据和请求静态资源的分离详解使用nginx、nginx plus抵御ddos攻击的方法详解用nginx+wordpress搭建个人博客全流程nginx https反向代理tomcat的2种实现方法基于nginx实现https网站设置的步骤升级nginx以支持http2的方法在网关中使用nginx配置http透明代理案例
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved