下载并安装nginx和tomcat

nginx下载地址,选择版本1.12.2
http://nginx.org/en/download.html
tomcat下载,选择版本9.0.29
http://tomcat.apache.org/
注意:以上都是下载的解压版

在本机或虚拟机上安装多个tomcat

安装tomcat

这里示例在本机上安装三个tomcat
解压并修改tomcat文件夹名即可。图中圈中部分,忽略其他的tomcat
在这里插入图片描述

配置tomcat

添加环境变量CATALINA_HOME,我这里因为还有其他tomcat所以配置的较多
在这里插入图片描述
在环境变量PATH中将刚才添加的三个CATALINA_HOME的lib和bin目录添加进去
%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;

在这里插入图片描述
保存后分别进入三个tomcat的bin目录,记事本打开catalina.bat和startup.bat,将其中的CATALINA_HOME全部替换为上述添加的对应的环境变量,比如我这里第一个tomcat对应的环境变量是CATALINA_HOME2,就将文件中所有的CATALINA_HOME替换为CATALINA_HOME2。
在这里插入图片描述
上述修改完成后就可以分别成功启动了,但是因为默认都是使用的8080,8005和8009端口,还要进入tomcat的conf目录,修改server中的端口配置,我这里分别将另外两个tomcat的端口设置为了8081,8015,8019和8083,8035,8039(8082端口被我本机的其他应用占用了)

修改tomcat首页title

为了区分不同的tomcat,我们还需要将tomcat的webapps/ROOT/index.jsp文件修改一下,将该文件的title标签值修改为对应的端口号,这样我们待会可以一下子看出tomcat切换了
在这里插入图片描述
启动三个tomcat,可以看到页面的title已经显示为了端口号
在这里插入图片描述

安装并配置nginx

安装nginx

将nginx的压缩包解压即可安装nginx
解压出来的路径如图所示
在这里插入图片描述

配置nginx

nginx的默认端口为80,打开nginx下的/conf/nginx.conf文件
在server一栏可以看到端口配置,这里因为本机80端口已被其他程序占用,修改为8888端口
在这里插入图片描述
同时还需要配置nginx的负载均衡策略,并且指定需要分发哪些tomcat的服务
这里创建一个upstream,设定其策略为权重型,权重越大分配访问次数越多。
其中upstream后的blance为自定义的服务名,你可以取名为任何,但是不能出现下划线
同时要保证你在proxy_pass后跟的就是你定义的服务名,如下所示
完整配置文件如下,这里已删除部分注释内容
文件server后的IP指的是tomcat所在服务器IP


#user  nobody;
worker_processes  1;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    #gzip  on;

    upstream blance{
         server IP:8080 weight=1;
         server IP:8081 weight=1;
         server IP:8083 weight=3;
    }

    server {
        listen       8888;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://blance;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

实际上nginx的负载均衡策略有3种,这里不做详谈,大致了解和学习地址可见文章最后

启动nginx

window版

双击目录下的nginx.exe即可
或者在cmd模式下,进入nginx目录
输入命令 start nginx 或者 nginx.exe
在这里插入图片描述
停止nginx命令
#快速停止,不保存相关信息
nginx.exe -s stop
#完整有序停止,保存相关信息
nginx.exe -s quit

linux下nginx的相关命令

启动
service nginx stop
或
systemctl stop nginx
重启
service nginx reload
systemctl restart nginx
关闭
service nginx stop
systemctl stop nginx
开机自启
systemctl enable nginx
取消开机自启
systemctl disable nginx

测试

nginx启动后
进入local:8888,如下图可以看到,服务分配给了8080端口的tomcat
在这里插入图片描述
再次刷新发现服务又分配给了8083的tomcat。当访问次数达到一定数量后,其分配比例就会无限靠近我们之前设置的权重比例
在这里插入图片描述
到此tomcat+nginx的负载均衡就实现了

nginx的负载均衡策略

轮巡

将客户端发起的请求,平均的分配给每一台服务器

upstream 名称 {
         server 172.16.80.124:8080;
         server 172.16.80.124:8081;
         server 172.16.80.124:8083;
    }
server {
        listen       80;
        server_name  localhost;
        
        location / {
            proxy_pass http://名称;
        }
}

权重

会将客户端的请求,根据服务器的权重值不同,分配不同的数量

upstream 名称 {
         server 172.16.80.124:8080 weight=1;
         server 172.16.80.124:8081 weight=10;
         server 172.16.80.124:8083 weight=1;
    }
server {
        listen       80;
        server_name  localhost;
        
        location / {
            proxy_pass http://名称;
        }
}

ip_hash

基于发起请求的客户端的ip地址不同,始终会将请求发送到指定的服务器上

upstream 名称 {
         ip_hash;
         server 172.16.80.124:8080;
         server 172.16.80.124:8081;
         server 172.16.80.124:8083;
    }
server {
        listen       80;
        server_name  localhost;
        
        location / {
            proxy_pass http://名称;
        }
}

详细的nginx学习可在如下网址观看,可以更加详尽的了解nginx
https://www.bilibili.com/video/BV1W54y1z7GM?p=14

更多推荐