15-基于Nginx构建Tomcat集群

Nginx构建Tomcat集群

搭建构图

我因为使用虚拟机的关系, 我就不搭建那么多Linux了, 直接用3个端口区分

Linux安装JDK

[root@localhost tomcats]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
[root@localhost tomcats]#

因为本地虚拟机直接有OpenJDK的原因, 我就直接用openJDK了, 如果不喜欢可以自己卸载了, 再安装Oracle的

搭建三台Tomcat

我直接用springboot jar包了, 就不搭建外置的Tomcat了

写一个SpringBoot程序,写一个接口,返回IP+端口号

package com.monai.getheader.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/getInfo")
public class HelloController {

    @Value("${server.port}")
    public String port;

    @GetMapping
    public String getInfo(){
        return "192.158.247.136:"+port;
    }

}

写完测试一下

ok

打包上传到服务器, 记得修改端口, 我的三台为8001,8002,8003

以后台的方式启动三个jar包

nohup java -jar getInfo-8001.jar >catlina.log &
nohup java -jar getInfo-8002.jar >catlina.log &
nohup java -jar getInfo-8003.jar >catlina.log &

测试访问

没有问题, 因为ip是我写死的, 158是写错了, 不用管

修改Nginx配置文件

新增加一个单独的配置, 然后通过导入的方式引用

vi getInfo.conf

upstream tomcats {
  server 192.168.247.136:8001;
  server 192.168.247.136:8002;
  server 192.168.247.136:8003;
}
server{
  listen        80;
  server_name   www.tomcat.com;
  location / {
    proxy_pass  http://tomcats;
  }
}

在nginx.conf配置文件中引入

检查并重启nginx

这里出现了一个问题

nginx: [emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)

我在启动的时候说是找不到这样的一个文件夹, 不是没有么, 那么就创建一个

mkdir /var/run/nginx/

再次尝试启动, 启动成功

访问

因为在配置时使用的是域名www.tomcat.com,但是我们没有DNS服务, 最简单的方式就是修改本地Host

添加映射规则

192.168.247.136 www.tomcat.com

推荐一个好用的工具SwitchHost, 下载即可使用

成功实现集群

posted @ 2022-09-06 18:30  彼岸舞  阅读(36)  评论(0编辑  收藏  举报