Tomcat和nginx负载均衡算法

自定义默认网站目录

  • 首先创建一个web目录,作为存放网站文件
mkdir -pv /web/webapp

#创建一个测试文件
vim /web/webapp/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
        <head>
                <title>JSP test page</title>
        </head>
        <body>
                <% out.println("Welcome to test site,http://www.test1.com");%>
        <body>
</html>

  • 修改Tomcat的配置文件server.xml
#先对server.xml做一个备份
cp /usr/local/romcat8/conf/server.xml{,.-$(date +%F)}
vim /usr/local/tomcat8/conf/server.xml
 <Context docBase="/web/webapp" path="" reloadable="flase">
                </Context>
  • 重启Tomcat服务进行测试

nginx+Tomcat负载均衡集群

  • nginx代理
    常用的是反向代理,代理就好比一个中介,为了省时省力存在的

  • 正向代理:
    当局域网不能上网时,可以在浏览器设置正向代理满足上网要求
    当我们想通过FQ访问国外网站查询资料,可以在浏览器设置正向代理
    当服务器只允许某个端的IP访问(比如googe),所以我们需要请求运行访问的那个客户端,在让其帮我们转发请求
    正向代理模型图

  • 反向代理:
    客户端需要自己去请求DNS获取服务端地址;
    代理是为服务端服务的;
    红色虚线表示防火墙;
    配置在服务端,分发客户端请求到不同的服务端
    主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息

  • 实验:

#关闭防火墙
#17,18安装jdk,配置Java,保证版本一致
#17,18安装Tomcat,版本一致
#19安装nginx
vim /usr/local/nginx/conf/nginx.conf #配置nginx
upstream tomcat {
        server  192.168.200.18:8080 weight=1; 
        server  192.168.200.17:8080 weight=1;
    } #weight算法,
location ~ \.jsp$ {
                proxy_pass http://tomcat;
        }  #确认路径
#确认17,18,Java启动,19 nginx启动
#查看端口,并且在浏览器确认

nginx负载均衡算法

  • 轮询(默认)
    weight=1 #一个一个轮着来
  • weight(轮询权值)
    数字越大,轮的越多
  • least_conn
    upstream tomcat {
          least_conn
          server  192.168.200.18:8080 weight=1; 
          server  192.168.200.17:8080 weight=1;
    
    会自动分配到清闲的服务器
  • ip_hash
    每一个请求安装访问ip的哈希结果分配,使一个ip有固定的的一台后端服务器,请求记录==哈希。
    upstream tomcat {
          ip_hash
          server  192.168.200.18:8080 weight=1; 
          server  192.168.200.17:8080 weight=1;
    
  • fail,url_hash
    需要下载模块
    fail可以根据响应时间长短分配
    根据URL的哈希分配

nginx负载均衡调度状态

  • down:表示当前的server不参与负载均衡
  • backup:预备,只有其他的出现故障才会使用
  • max_fails:允许请求失败的次数,默认是1
  • fail_timeout:请求失败的时间,在经历max_fails后,暂停服务时间
posted @ 2021-09-22 17:43  whml  阅读(50)  评论(0编辑  收藏  举报