Tomcat2

LB tomcat(负载均衡tomcat)
lnmt模式:
client ---> nginx ---> tomcat1
                    ---> tomcat2
    客户端发起请求首先由nginx服务器进行响应。之后nginx通过负载均衡将请求分发到后端tomcat服务器上

一:关闭防火墙(最后如果需要防火墙再进行端口放行即可):
    systemctl stop iptables
    systemctl stop ebtables
    systemctl stop firewalld
    setenforce 0
二:配置nginx做反向代理                    
nginx服务器:  IP地址:192.168.1.100(实际环境中只有应该有两块网卡,一个公网用于响应客户端请求,一个内网用于与tomcat服务器通信)
    http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream tomcat {     通过upstream关键 和自定义名字 定义要转发的服务器
    #ip_hath            负载算法,原地址hath,当然可以不写,也可以换成其他算法如下:
            一、轮询(默认) 
            每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 
            二、weight
            指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。  
            upstream bakend {  
            server 192.168.0.101 weight=10;  
            server 192.168.0.102 weight=10;  
            }
             
            三、ip_hash
            每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。  
            upstream bakend {  
            ip_hash;  
            server 192.168.0.101:8080;  
            server 192.168.0.102:8080;  
            } 
             
            四、fair(第三方)
            按后端服务器的响应时间来分配请求,响应时间短的优先分配。  
            upstream backend {  
            server server1;  
            server server2;  
            fair;  
            }
            五、url_hash(第三方)  
            按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。  
            例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法  
            upstream backend {  
            server squid1:3128;  
            server squid2:3128;  
            hash $request_uri;  
            hash_method crc32;  
    server node2.com:8080; 后端服务器
    server node3.com:8080; 后端服务器
    }   
    
    server {
        listen       80;
        server_name  localhost;
            index  index.html index.htm;
    location / {
        proxy_pass http://tomcat; 再此处引用定义的upstream
    }

三:配置两个tomcat节点
tomcat1:IP地址:192.168.1.101
    1,编辑配置文件定义虚拟主机:vim /usr/local/tomcat/conf/server.conf/server
        <Engine name="Catalina" defaultHost="node2.com"> 将node2.com定义成默认访问站点 
             <Host name="node2.com"定义访问域名  appBase="/app" 根下的app为主目录
                unpackWARs="true" autoDeploy="true">
            <Context path="" docBase="myapp"/> myapp是app的下级目录,是index.jsp主页面的上级目录
            </Host>
        </Engine>
    2,创建虚拟主机的主页面目录文件
        mkdir -p /app/myapp
        cd /app/myapp 这是根目录,根目录下必须包括以下文件:
                WEB-INF:不是必须,当前webapp的私有目录,通常存放webapp的自用web.xml
                META-INF:当前webapp的私有资源目录,通常存放webapp的自用web.xml
                classes:此webapp的私有类
                lib:此webapp的私有文件,被打包成jar格式的类
                index.jsp:web主页
            cp /usr/local/tomcat/weapps/Root/* ./ 可以从默认根目录下复制这几个文件
    3,编辑主页面,用来做测试
        vim /app/myapp/index.jsp
            <%@ page language="java" %>
            <%@ page import="java.util.*" %>
            <html>
                <head>
                    <title>Test Page</title>
                </head>
                <body>
                    <% out.println(“my name is HU");%> 访问主页面显示的是“hello node2.com”
                </body>
            </html>

tomcat2:IP地址:192.168.1.102
        在tomcat2做鱼tomcat1节点一样的操作,只是将node2.com改成node3.com

四:在浏览器访问 http://192.168.1.100 

 

 当客户端访问nginx服务器地址时,实际是tomcat服务器的内容。而且内容不一样(实际环境应用中所有节点内容应该是完全一样的,这里是为了测试时能够看出负载结果,所以有所区别),说明nginx是向两台tomcat服务器进行转发,这就有效的减轻服务器的负载量并且很好的隐藏了真实服务器的ip。甚至我们还可以更改服务器端口号,这样就避免了外来攻击与暴力破解。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值