广告位联系
返回顶部
分享到

Nginx+Tomcat集群环境的实现

nginx 来源:互联网 作者:佚名 发布时间:2024-11-22 09:10:11 人浏览
摘要

一、集群环境架构 一台Nginx可以与多台Tomcat服务器挂钩,此时客户端访问的都是Nginx反向代理的IP地址和端口,然后Nginx通过一些分流策略等等,将流量分配到不同的Tomcat上,最后由Tomcat连接数

一、集群环境架构

image-20240122104512728

一台Nginx可以与多台Tomcat服务器挂钩,此时客户端访问的都是Nginx反向代理的IP地址和端口,然后Nginx通过一些分流策略等等,将流量分配到不同的Tomcat上,最后由Tomcat连接数据库,并处理Java的请求。该图中的Nginx和MySQL等都是可以继续扩展的

集群的作用:

(1)负载均衡:Load-Balance,表示有多台服务器同时提供服务,每一台服务器的负载就会降低,提升性能和并发量

(2)故障转移:Fall-Over,其中一台崩溃,则数据流转移到另外一台上

二、配置单机应用

配置一个Nginx+一个Tomcat

1.确保Tomcat正常访问,配置参考Tomcat的步骤

1

2

开启:/opt/apache-tomcat-8.0.53/bin/startup.sh

关闭:/opt/apache-tomcat-8.0.53/bin/shutdown.sh

  • 配置Nginx 的核心配置文件 /usr/local/nginx/conf/nginx.conf

1

2

3

4

5

6

#此节点在 http 节点下,与 server 节点同级

upstream mytomcat {

    ## 指定Tomcat的服务器IP地址和端口,及权重(针对多套Tomcat服务器时使用)

    server 192.168.230.147:8080 weight=1;

    ##也可以添加第二台,第三台,第四台等构成集群环境

}

image-20240122121248257

由于nginx默认端口为80,而MySQL默认端口也是80,因此我将nginx的默认端口改为了8088

1

2

3

4

5

6

## 如果通过nginx访问 http://192.168.230.147:8088/woniusales,则通过 proxy_pass 反向代理将该目录下的所有请求,转发给 http://mytomcat/woniusales,其中mytomcat是由upstream节点定义的名称

 

location / {

    proxy_pass http://mytomcat/woniusales/;  # 此处最后务必添加 /

    proxy_redirect default;

}

1

2

3

4

5

# 当用户访问nginx的80端口下的woniusales时,访问mytomcat下的woniusales,此节点在 server 节点中

location /woniusales/ {

    proxy_pass http://mytomcat/woniusales/;

    proxy_redirect default;

}

image-20240122121703644

重启nginx

现在我们就配置好了nginx的单机反向代理,此时我们就可以通过访问nginx来访问woniusales

image-20240122121934248

原本的8088端口配置的是Nginx,但由于现在配置了nginx的反向代理,于是访问8088端口时nginx都会自动将请求递交给Tomcat服务器,然后根据nginx.conf 的配置文件我们可以知道其实是直接访问了tomcat下的woniusales。所以现在访问8088端口就会自动跳转到woniusales页面呢

三、配置Tomcat集群

1.准备至少两台可用的Tomcat,确保两台Tomcat连接到同一个数据库,配置文件在 /opt/apache-tomcat-8.0.53/webapps/woniusales/WEB-INF/classes/db.properties 中

2.确保Nginx所在服务器,可以正常访问到这两台Tomcat,如果不能,请检查防火墙是否放行了Tomcat端口8080等

3.将所有的Tomcat服务器,配置于nginx核心配置文件/usr/local/nginx/conf/nginx.conf的upstream节点中

1

2

3

4

5

6

7

8

9

10

11

#此节点在 http 节点下,与 server 节点同级

upstream mytomcat {

    ip_hash; 

    ## ip_hash 使得访问哪个IP地址,就将数据交给哪个Tomcat

    ## 指定Tomcat的服务器IP地址和端口,及权重(针对多套Tomcat服务器时使用)

    server 192.168.230.148:8080 weight=2;

    server 192.168.230.147:8080 weight=1;

    ##也可以添加第二台,第三台,第四台等构成集群环境

}

 

其他配置保持不变

4.重启nginx

1

/usr/local/nginx/sbin/nginx -s reload

5.测试集群的功能

image-20240122162130437

nginx默认端口是80

使用192.168.112.1访问一下192.168.112.188/woniusales 我们去看access_log,先去192.168.112.188上的Tomcat发现并没有日志记录,然后再去192.168.112.1上面去看发现有日志记录,说明该流量确实是被nginx转发给了192.168.112.1,从侧面也验证了192.168.112.188上的nginx确实搭载了两台Tomcat,不然也不会将访问192.168.112.188:80的流量转发给192.168.112.1。

但我们明明配置的是ip_hash,但为什么访问的是192.168.112.188,怎么流量都转发给了192.168.112.1呢,也许是因为配的权重比较高吧

(1)确保所有Tomcat节点连接到同一个数据库,保持数据同步

(2)必须确保客户端有不同的IP地址访问,Nginx的集群会根据IP地址来分给后台服务器

(3)在Tomcat节点上,tall -f /opt/apache-tomcat/logs/access.log 实时刷新访问日志,如果有请求进来,可以看到客户端的IP地址


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • linux安装nginx和前端部署vue项目全过程(实测react项

    linux安装nginx和前端部署vue项目全过程(实测react项
    1、打包前端项目 1 npm run build 执行完后会在根目录下生成一个dist文件夹,这个dist文件夹就是我们需要的东西 2、将dist包上传到服务器 自己
  • Nginx+Tomcat集群环境的实现

    Nginx+Tomcat集群环境的实现
    一、集群环境架构 一台Nginx可以与多台Tomcat服务器挂钩,此时客户端访问的都是Nginx反向代理的IP地址和端口,然后Nginx通过一些分流策略等
  • nginx指定conf文件路径的方法介绍
    在使用 Nginx 时,有时需要指定配置文件(nginx.conf)的路径,而不是使用默认的路径。你可以通过以下几种方式来指定配置文件路径: 1. 使
  • Nginx的流式响应配置教程介绍
    Nginx的流式响应配置 Nginx的流式响应(streaming response)是指在Nginx作为反向代理服务器时,将响应内容一边接收,一边逐步发送给客户端的过
  • Nginx设置Access-Control-Allow-Origin多域名跨域实现

    Nginx设置Access-Control-Allow-Origin多域名跨域实现
    修改配置文件 可通过如下配制进行多域名的设置。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 map $http_origin $corsHost { default 0; ~https://www.itbiancheng.com https://
  • Nginx修复CORS漏洞的实现方法
    漏洞描述 CORS 不安全配置漏洞指的是在跨域资源共享过程中,由于资源服务器的响应头 Access-Control-Allow-Origin 配置不当导致本应该受限访问的
  • Nginx配置超时时间的排查方法
    如果在 Nginx 中设置了 keepalive_timeout、client_header_timeout 和 client_body_timeout 后仍然不起作用,可以尝试以下排查步骤: 1. 确认配置的生效范围
  • Nginx中配置防盗链的方法实现介绍
    在当今数字化的时代,网站内容就如同珍贵的宝藏,而盗链则像是可恶的盗贼,企图不劳而获地窃取这些宝藏。想象一下,您辛辛苦苦打造
  • Nginx只允许www域名访问并禁止裸域名访问的实现步
    在网站管理中,很多时候我们希望用户只能通过带有www的域名访问,而对于裸域名(即没有www前缀的域名)则禁止访问或进行重定向。这可
  • Nginx实现UDP四层转发的过程

    Nginx实现UDP四层转发的过程
    有2台云服务器,一台国内的、一台国外的,我本地网络直连国外的IP上VPN速率很慢。但是由于云服务器厂商有线路优化,国内的服务器到国
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计