首页 > 系统相关 >Linux&Nginx16_Nginx负载均衡7

Linux&Nginx16_Nginx负载均衡7

时间:2023-04-11 19:22:29浏览次数:49  
标签:负载 均衡 tomcat server Nginx Nginx16 Linux 240.128 服务器

一、概念

 在网站创立初期,我们一般都使用单台机器对外提供集中式服务。随着业务量的增大,我们一台服务器不够用,此时就会把多台机器组成一个集群对外提供服务,但是,我们网站对外提供的访问入口通常只有一个,比如 www.web.com。那么当用户在浏览器输入www.web.com进行访问的时候,如何将用户的请求分发到集群中不同的机器上呢,这就是负载均衡要做的事情。

 负载均衡通常是指将请求"均匀"分摊到集群中多个服务器节点上执行,这里的均匀是指在一个比较大的统计范围内是基本均匀的,并不是完全均匀。

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

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

二、负载均衡实现方式

 1. 硬件负载均衡

  比如F5、深信服、Array等

  优点是有厂商专业的技术服务团队提供支持,性能稳定

  缺点是费用昂贵,对于规模较小的网络应用成本太高

 2. 软件负载均衡

  比如 Nginx、LVS、HAProxy 等

  优点是免费开源,成本低廉

 

三、准备工作

 (1)将刚才存放工程的tomcat复制三份,修改端口分别为8080 ,8081,8082。

    注意:要修改tomcat/conf/server.xml中Connector、Server所有有port的地方。

 (2)分别启动这三个tomcat服务。

 (3)为了能够区分是访问哪个服务器的网站,可以在首页标题加上标记以便区分(webapps项目里index.html的title加上各自的端口号来区分)

四、配置负载均衡

 修改nginx配置文件:

upstream tomcat-travel{
       server 192.168.240.128:8080;
       server 192.128.240.128:8081;
       server 192.168.240.128:8082;
}

server {
        listen       80; # 监听的端口
        server_name  www.hmtravel.com; # 域名或ip
        location / {    # 访问路径配置
            # root   index;# 根目录
          proxy_pass http://tomcat-travel;
           index  index.html index.htm; # 默认首页
        }
}

 重启nginx,浏览器访问http://www.hmtravel.com/ 刷新观察每个网页的标题,看是否不同。

 经过测试,三台服务器出现的概率各为33.3333%,交替显示。

 如果其中一台服务器性能比较好,想让其承担更多的压力,可以设置权重。

upstream tomcat-travel{
       server 192.168.240.128:8080 weight=2;
       server 192.128.240.128:8081;
       server 192.168.240.128:8082;
}

 其中weight=2表示权重,用于后端服务器性能不均的情况,访问比率约等于权重只比,权重越大访问机会越多

 upstream是配置nginx与后端服务器负载均衡非常重要的一个模块,并且它还能对后端的服务器的健康状态进行检查,若后端服务器中的一台发生故障,则前端的请求不会转发发到该故障的机器

 这样访问tomcat8080:8081:8082的比例是2:1:1,重启nginx,访问url每刷新4次,有两次是8080

 

标签:负载,均衡,tomcat,server,Nginx,Nginx16,Linux,240.128,服务器
From: https://www.cnblogs.com/ajing2018/p/17307359.html

相关文章

  • linux常用命令
    1、系统工作命令manecho输出date系统时间与日期%Y年%m月%d日%H时%M分%S秒%j第几天-s设置当前时间timedatectl系统时间status状态信息list-timezones列出已知时区set-time系统时间set-timezone生效时区reboot重启poweroff......
  • Rocky Linux 9 Minio 集群部署
    1、DockerCE安装参考:https://www.cnblogs.com/a120608yby/p/9883175.html2、DockerCompose安装参考:https://www.cnblogs.com/a120608yby/p/14582853.html3、Minio部署#编辑docker-compose.yaml#vimdocker-compose.yamlversion:'3.7'#Settingsandconfigu......
  • Linux 课程网址
    韩顺平Linux:https://www.bilibili.com/video/BV1Sv411r7vd?p=27&vd_source=0e10ce931b6b691488248fe09e2739c5 bilibii:https://www.bilibili.com/video/BV1n84y1i7td?p=14 ......
  • 哪吒探针 - Windows 和Linux端agent安装(详细注意版)
    一、Windows端agent安装配置环境准备环境:Windows服务器软件:哪吒探针点击下载、nssm点击下载(探针agent和nssm都要下载准备好)设置环境变量下载软件后,解压到任意位置,然后按win+R打开运行窗口,输入sysdm.cpl打开系统属性–>高级–>环境变量–>系统变量–>Path在最后把......
  • python ssh Linux机器 paramiko库的简单使用
    pythonsshLinux机器paramiko库的简单使用以用户名密码方式连接Linux主机defconn_by_password():"""1)如果抛出异常:SSHException:Server'172.17.140.17'notfoundinknown_hosts则需要设置ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy(......
  • Linux 操作系统启动过程
    当接通电源,硬件通过一系列自检完成后,硬件把控制权转交给操作系统后Linux系统启动过程可以分为5个阶段:加载内核。运行init。系统初始化。建立终端。用户登录系统。init程序的类型:SysV: init,CentOS5之前,配置文件:/etc/inittab。Upstart: init,CentOS6,配置文......
  • Cacti监控远程linux机器配置(被监控端)
    一、被监控机安装snmpyum-yinstallsnmp二、被监控机的配置vi/etc/snmp/snmpd.conf做以下更改: 1、找到com2sec notConfigUser  default       public 改为:com2sec notConfigUser   192.168.1.1(改成监控服务器的ip)       public 2、找到access......
  • 使用Xshell远程连接Linux服务器
     https://blog.csdn.net/weixin_48016395/article/details/123190779?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-2-123190779-blog-129054565.235^v28^pc_relevant_default&spm=1001.2101.3001.4242.2&utm_rele......
  • Linux 04 文件操作
    文件查看$cat小文件$more小/大文件$head-n15filename开头$tail-n15filename结尾#tr转换命令,需要使用管道和通配符$catanaconda-ks.cfg|tr[a-z][A-Z]将文件中所有小写转换为大写$wc统计$wc-lanaconda-ks.cfg$wc-wanaconda-ks.cfg$wc-c......
  • Linux 上 定时备份 postgresql 数据库
    Linux上定时备份postgresql数据库为了避免操作数据库的风险因此计划每天对postgresql数据库进行定时备份1.服务器地址:备份服务器地址10.10.10.101(虚构)postgresql数据库所在的服务器地址10.10.10.100(虚构)因为我有单独的备份数据库不在同一个服务器上操作首先要保证这......