Nginx + Tomcat 负载均衡实现实例_Ubuntu_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • Ubuntu

    当前位置:主页 > 服务器教程 > Ubuntu >

    Nginx + Tomcat 负载均衡实现实例

    时间:2019-08-12|栏目:Ubuntu|点击:
  • 负载均衡的目的是为了解决单个节点服务器压力过大,造成Web响应过慢,严重情况下导致服务瘫痪;由于一个web服务同时能处理的用户并发请求数量有限,同时可能还有服务机器故障等情况,所以web站点通常会在N台服务器上部署一套同样的程序,这就是通常所说的服务器集群.有了集群还要合理分配请求,不可能搭建了集群后所有的请求都发送到一台机器上,这显然是不合理的,也是对服务器资源的严重浪费.如何将用户的请求合理分配到一台能快速响应的服务器上,需要用到一些均衡策略.

    负载均衡的意义就是讲用户的请求按照一定的策略,均衡地分配到服务器集群中的机器上,充分发挥服务器的性能,也提高了用户体验.

    负载均衡常用的web服务器软件有NginxApache、HAProxy等。本文主要是Nginx的负载均衡配置.

    为了模拟服务器集群,这里在本地机器上装了多个Tomcat,同时修改Tomcat的监听端口,以达到启动多个Web服务的目的.

    具体修改步骤:

    Tomcat下载

    Tomcat安装目录 > conf > server.xml,主要修改位置为 3 处,因为实在本机上模拟集群,目的是为了防止端口冲突;

    1、 Server:port

    2、Server > Service > Connector:port (HTTP/1.1协议)

    Nginx + Tomcat 负载均衡实现实例

    3、Server > Service > Connector:port (AJP/1.3协议)

    ---另外一个Tomcat http协议端口修改为20710,修改位置相同;

    修改后启动两个Tomcat,可以看到端口没有冲突,可以正常启动,这样在本机上就存在了两个web服务.

    Nginx + Tomcat 负载均衡实现实例

    为了简单区分确实是启动了两个Web服务,修改Tomcat安装目录 > webapps > ROOT > index.html,加上标识.

    Nginx + Tomcat 负载均衡实现实例

    Nginx + Tomcat 负载均衡实现实例

    Nginx + Tomcat 负载均衡实现实例

    以下开始Nignx配置: 

    Nignx下载(推荐稳定版本)

    Nginx负载均衡是通过upstream模块来实现的,内置了三种负载策略,官方说明:配置参考;

    · 轮循(默认)

      Nginx根据请求次数,将每个请求均匀按权重分配到每台服务器

    · 最少连接

      将请求分配给当前连接数最少的服务器,Nginx会统计哪些服务器的连接数最少

    · IP Hash

      根据IP绑定处理请求的服务器。第一次请求时,根据该请求IP计算出Hash值,将请求分配到集群中的某一台服务器上。以后来自改IP的所有请求,都将通过Hash算法,将请求转发到绑定的服务器上

    更改负载策略主要是修改Nginx的配置文件, 位于 Nginx安装目录 > conf > nginx.conf. 修改后部分代码如下:

    #user nobody; #工作进程的个数,一般与计算机的CPU核数一致. worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { #单个进程最大连接数(最大连接数 = 连接数 * 进程数) worker_connections 1024; } http { #文件扩展名与文件类型映射表 include mime.types; #默认文件类型 default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; #开启高效文件传输模式,sendfile函数指令指定nginx是否调用sendfile函数来输出文件 #对于普通应用设置为on,如果用来进行下载等应用磁盘IO重负载应用,可以设置为off, #以平衡磁盘与网络IO处理速度,降低系统的负载;若图片显示不正常,则改为off sendfile on; #tcp_nopush on; #长连接超时时间,单位/秒 #keepalive_timeout 0; keepalive_timeout 65; #是否启用gzip压缩 #gzip on; #服务器集群 upstream sakurakann { #服务器集群的名字     least_conn; #服务器配置,weight是权重的意思,权重越大,分配的概率越大. server 127.0.0.1:11015 weight=1; server 127.0.0.1:20710 weight=2; } #当前nginx配置 server { #nignx监听的端口 listen 80; #当前服务器域名 server_name localhost; charset utf-8; #access_log logs/host.access.log main; #location / { # root html; # index index.html index.htm; #} location / { #要与上面 @line 49 的服务器集群名称一致 proxy_pass ; #服务器若是https连接,则使用https:// proxy_redirect default; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } 

    上一篇:Zabbix 基于JMX的Tomcat监控

    栏    目:Ubuntu

    下一篇:Linux下vsftp虚拟用户配置与主动模式被动模式

    本文标题:Nginx + Tomcat 负载均衡实现实例

    本文地址:http://www.jh-floor.com/fuwuqijiaocheng/Ubuntu/19972.html

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号