编程技术分享平台

网站首页 > 技术教程 正文

Nginx+Tomcat集群实现服务负载均衡

xnh888 2024-09-25 23:36:36 技术教程 18 ℃ 0 评论


Linux下Tomcat的安装和项目部署

实验环境

Nginx服务器

  • 192.168.0.44 (Nginx+Tomcat)

Tomcat服务器

  • 192.168.0.44 (Nginx+Tomcat)

  • 192.168.0.55
  • 192.168.0.66

JDK安装

(为了快速部署,我没使用Yum安装JDK)

Tomcat安装

Tomcat版本:apache-tomcat-8.5.42.tar.gz

下载安装包、建议新建文件夹存放Tomcat、上传到服务器

解压安装包(webserver是我自己新建的文件夹)

[root@linux-node1 webserver]# tar -zvxf apache-tomcat-8.5.42.tar.gz

启动Tomcat(前提得配置好Java环境)

浏览器访问Tomcat

  • 192.168.0.33为虚拟机IP
  • 8080为Tomcat默认端口,可配置
  • 访问的是Tomcat内置的ROOT项目

可以看到tomcat正常运行

以上软件在Tomcat服务器上安装


Nginx的安装


我们可以使用Nginx做什么:

  • web服务器
  • 负载均衡
  • 反向代理

Nginx的调度算法

  • 轮询:按时间顺序逐一分配到不同的后端服务器。
  • 加权轮询:可在配置的server后面加个weight=number,number值越高,分配的概率越大。
  • ip_hash:每个请求按访问IP的hash分配,这样来自同一IP固定访问一个后台服务器。
  • least_hash:最少链接数,哪个机器连接数少就发分发给哪个机器。
  • url_hash:按访问的url的hash结果分配请求,是每个url定向到同一后端服务器上。
  • hash关键值:hash自定义的key。

注:调度算法在设置upstream中配置,例如在此大括号里面写入ip_hash表示使用ip_hash的方式分配




192.168.0.44上安装


安装依赖

[root@linux-node1 ~]# yum -y install gcc perl zlib pcre-devel openssl openssl-devel


下载Nginx安装包并解压

Nginx官网:http://nginx.org

[root@linux-node2 webserver]# wget http://nginx.org/download/nginx-1.14.0.tar.gz

[root@linux-node2 nginx-1.14.0]# tar -zvxf nginx-1.14.0.tar.gz

编译安装

执行 ./configure

安装

[root@linux-node2 nginx-1.14.0]# make & make install


启动Nginx

默认安装路径为:/usr/local/nginx

可以看到nginx已经启动了,一个master进程,一个worker进程

web也可以访问

编辑一个便于service管理的脚本

  • [root@linux-node2 ~]# cd /etc/init.d/
  • [root@linux-node2 ~]# vim nginx添加如下内容#!/bin/bash
    # chkconfig: - 99 20
    # description: Nginx Service Control Script
    PROG="/usr/local/nginx/sbin/nginx"
    PIDF="/usr/local/nginx/logs/nginx.pid"
    case "$1" in
    start)
    $PROG
    ;;
    stop)
    kill -s QUIT $(cat $PIDF)
    ;;
    restart)
    $0 stop
    $0 start
    ;;
    reload)
    kill -s HUP $(cat $PIDF)
    ;;
    *)
    echo "Usage: $0 {start|stop|restart|reload}"
    exit 1
    esac
    exit 0
  • [root@linux-node2 ~]# chmod +x /etc/init.d/nginx
  • [root@linux-node2 ~]# chkconfig --add nginx
  • [root@linux-node2 ~]# chkconfig --level 35 nginx on
  • [root@linux-node2 ~]# service nginx stop
  • [root@linux-node2 ~]# service nginx start


实现Nginx+Tomcat集群负载均衡

服务分布:

  • 一台Nginx服务器

192.168.0.44(Nginx+Tomcat)

  • 三台Tomcat服务器192.168.0.44(Nginx+Tomcat)端口:8080192.168.0.55 端口:8081192.168.0.66 端口:8082


修改Tomcat负载均衡服务器配置文件 server.xml

在192.168.0.66也需要修改,这里就不做演示了。


修改Nginx配置文件

在http处修改

tomcatserver 为集群地址

weight 单个服务地址及其权重,这个权重是默认负载均衡算法的值,越大越容易被访问



在Server处修改

proxy_pass 代理指向Tomcat集群



修改完以后重启集群Tomcat服务器,然后重启Nginx服务器


Web访问

编辑一个测试文件index.jsp 内容不同,上传到三台Tomcat服务器上

因为我的项目文件地址已修改,所以上传到demo目录下

编辑Tomcat文件,修改如下内容,指定/demo为web文件夹


内容:

192.168.0.44 Tomcat-----1111111111111111111111111

192.168.0.55 Tomcat-----2222222222222222222222222

192.168.0.66 Tomcat-----3333333333333333333333333

在浏览器输入Nginx服务器地址:http://192.168.0.44/

第一次访问

第二次访问

第三次访问

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表