LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

下面小编就为大家带来一篇linuxnginx反向代理下的tomcat集群(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Nginx具有反向代理(注意和正向代理的区别)和负载均衡等特点。

这次Nginx安装在 192.168.1.108 这台linux 机器上。安装Nginx 先要装openssl库,gcc,PCRE,zlib库等。

Tomcat 安装在192.168.1.168 和 192.168.1.178 这两台机器上。客户端通过访问192.168.1.108 反向代理访问到

192.168.1.168 和 192.168.1.178 里Tomcat 部署的工程内容。

1.Linux 下安装Nginx (机器192.168.1.108)

安装openssl库。

yum install -y openssl openssl-devel

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

需要安装gcc:yum install gcc-c++

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

安装 PCRE yum install -y pcre pcre-devel

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

安装zlib库 yum install -y zlib zlib-devel

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

装在 /usr/local/ 下

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

解压 tar -zxvf nginx-1.13.0.tar.gz

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

进入目录 运行 ./configure 产生makefile

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

此时目录多出了 makefile

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

编译make

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

安装:make install

完成后 local 目录下 多了个 nginx

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

启动 nginx

进入sbin 目录 执行./nginx

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

查看启动结果

钉钉 AI 助理 钉钉 AI 助理

钉钉AI助理汇集了钉钉AI产品能力,帮助企业迈入智能新时代。

钉钉 AI 助理 21 查看详情 钉钉 AI 助理

Window 访问 192.168.1.108 nginx 默认端口为80

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

关闭 ./nginx -s stop

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

关闭后此时对应也无法访问

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

./nginx -s reload 可以在启动后重新加载配置文件 适合于在启动会修改了配置文件

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

2.Linux 下安装Tomcat (192.168.1.168 和 192.168.1.178 机器)

安装过程很简单,不述说了。分别在另两台Linux 机器(192.168.1.168 和 192.168.1.178)安装Tomcat ,随便部署个工程nginxTest 一个内容是 1111……. 一个是22222…….

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

此时访问的是不同的IP地址,还没用Nginx 配置进去当反向代理服务器。

3. Nginx当做反向代理服务器

主要配置nginx.conf 里的内容

a. 配置服务器组,在http{}节点之间添加upstream配置。

192.168.1.168:9090 和 192.168.1.178:9191 是另两台Linux 机器的Tomcat (看上述2)

upstream lxstest{server 192.168.1.168:9090;server 192.168.1.178:9191;}

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

b. 修改nginx监听的端口号80,改为7777(随便改个都行,不改也行)。

server {listen 7777;......}

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

c. 在location{}中,利用proxy_pass配置反向代理地址;此处“http://”不能少,后面的地址要和第一步upstream定义的名称保持一致。(上述的是 lxstest,所以http://lxstest)

location / {root html;index index.html index.htm;proxy_pass http://lxstest;}

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

上述修改完后,启动 192.168.1.108机器的Nginx

最后访问 192.168.1.108:7777/nginxTest 同一个地址出来不同的页面,说明一会儿访问的是192.168.1.168,一会儿访问的是192.168.1.178

LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

http://192.168.1.108:7777

等同于==== LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

等同于===== LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍

最后就会找到对应的Tomcat

再找到对应的nginxTest工程。

以上就是LINUX中关于NGINX反向代理下的TOMCAT集群的详细介绍的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/343572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月5日 19:25:33
下一篇 2025年11月5日 19:26:14

相关推荐

  • js如何操作usb设备

    javascript本身无法直接操作usb设备,必须通过特定技术实现;1. 使用webusb api可在支持的浏览器中安全地与用户授权的usb设备通信;2. 通过node.js结合node-usb库可在服务端操作usb设备,并以前端通信方式传递数据;3. 浏览器扩展可利用高权限访问usb设备并通过消…

    2025年12月20日 好文分享
    000
  • Node.js的libuv库和事件循环有什么关系?

    node.js能实现非阻塞i/o,核心依赖libuv;2. libuv通过操作系统原生异步api(如epoll/kqueue/iocp)处理网络i/o,避免主线程阻塞;3. 对于无法非阻塞的操作(如文件读写、dns查询),libuv使用默认4个线程的线程池异步执行,保持主线程自由;4. 事件循环是n…

    2025年12月20日 好文分享
    000
  • 解决移动端HTML5视频播放兼容性问题:以WebM格式优化跨浏览器体验

    本文旨在解决HTML5视频在移动端浏览器(如Safari、Firefox、Chrome)上无法正常播放,但在桌面端运行良好的常见问题。核心解决方案在于优化视频格式,特别是采用WebM格式,并结合autoplay、playsInline、muted等关键HTML属性,以确保视频在各种移动设备上实现流畅…

    好文分享 2025年12月20日
    000
  • HTML5视频在移动端无法播放?WebM格式兼容性优化指南

    本文旨在解决HTML5视频在移动设备上无法自动播放的常见问题,即使已设置autoplay、playsInline和muted属性。通过深入探讨移动浏览器对视频格式和播放策略的限制,我们发现采用WebM视频格式是提高跨浏览器兼容性,尤其是在Safari、Firefox和Chrome等移动端浏览器上实现…

    2025年12月20日
    000
  • 解决移动端浏览器视频播放兼容性问题:以Next.js为例的WebM格式实践指南

    本文深入探讨了在Next.js应用中,移动端浏览器(如Safari、Firefox、Chrome)视频无法播放,但在桌面端正常显示的问题。通过分析常见原因,并提供基于WebM视频格式的解决方案,旨在帮助开发者优化移动视频播放体验,确保跨平台兼容性,避免因视频编码或容器格式不当导致的显示异常。 移动端…

    2025年12月20日
    000
  • js怎样处理跨域请求

    处理javascript跨域请求主要有三种方法:1. cors是现代主流方案,需服务器设置access-control-allow-origin等响应头,支持复杂请求预检和凭证传递,但需后端配合;2. 代理方案通过前端请求同源后端,再由后端转发请求至目标api,彻底规避浏览器同源策略,适合无法控制第…

    2025年12月20日 好文分享
    000
  • 高效的Flask与React项目开发实践:告别频繁npm run build

    本文详细介绍了在Flask与React集成项目中,如何优化开发工作流以避免每次前端代码修改后都需执行npm run build。核心策略是分离前端React开发服务器与后端Flask API服务器,通过配置React代理请求至Flask后端,实现前端热更新与后端独立运行。文章将指导读者配置开发环境,…

    2025年12月20日
    000
  • 优化Flask与React开发流程:实现高效前后端分离调试

    在Flask与React集成开发中,频繁执行npm run build以更新前端代码是常见的效率瓶颈。本文将详细介绍一种优化策略,通过在开发阶段让Flask和React独立运行(React使用其自带开发服务器,Flask作为API后端),并在生产阶段由Flask统一服务构建好的React应用,从而实…

    2025年12月20日
    000
  • 优化Flask与React集成开发:实现免构建热重载

    本文旨在解决Flask后端服务React前端时,开发阶段频繁执行npm run build导致效率低下的问题。通过详细阐述开发与生产环境下的不同配置策略,包括Flask的条件性静态文件服务、React开发服务器的代理配置以及CORS处理,实现开发模式下的热重载和便捷调试,大幅提升开发效率。 在前后端…

    2025年12月20日
    000
  • js怎样获取当前时间戳

    获取当前时间戳最推荐的方式是使用 date.now()。1. 使用 date.now() 可直接获取毫秒级时间戳,如 const timestampms = date.now(); 2. 若需秒级时间戳,可将毫秒级时间戳除以1000并向下取整,如 const timestampsec = math.…

    2025年12月20日 好文分享
    000
  • Googlebot爬取SPA时XHR请求失败与软404问题的根源与解决方案

    许多单页应用(SPA)在Google Search Console中被报告为“软404”,尽管在浏览器中表现正常。这通常源于Googlebot在执行XHR请求前,会尝试访问后端服务器的/robots.txt文件。如果后端未能妥善处理此请求(例如超时),Googlebot会取消后续的XHR,导致页面渲…

    2025年12月20日
    000
  • js怎么获取设备信息

    在javascript中获取设备信息需区分浏览器和node.js环境;2. 浏览器中通过navigator对象获取useragent、platform、language等信息,并结合正则或第三方库解析浏览器类型;3. node.js中使用os和process模块获取操作系统类型、cpu架构、内存、主…

    2025年12月20日 好文分享
    000
  • 将外部 JavaScript 文件嵌入 HTML 的实用指南

    第一段引用上面的摘要: 本文介绍了一种将外部 JavaScript 文件嵌入到 HTML 文件中的方法,以便生成独立的 HTML 文件。通过使用 m4 宏处理器,我们可以轻松地将 JavaScript 代码直接嵌入到 标签中,从而简化开发流程并提高模块化程度。 使用 m4 宏处理器嵌入 JavaSc…

    2025年12月20日
    000
  • 将外部 JavaScript 文件嵌入 HTML 的方法

    本文介绍了一种将外部 JavaScript 文件嵌入到 HTML 文件中的方法,以便生成独立的 HTML 文件。通过使用 m4 宏处理器,可以方便地将 JavaScript 文件的内容直接插入到 HTML 文件的 标签中,从而实现代码的模块化和便捷部署。本文提供详细的步骤和示例代码,帮助开发者快速掌…

    2025年12月20日
    000
  • 如何利用事件循环实现实时通信?

    事件循环是实时通信的基石,因它通过非阻塞i/o和事件驱动模型,使单线程能高效处理海量并发连接,解决传统多线程模型的c10k性能瓶颈;2. 常见实现如node.js(基于libuv多阶段循环)、python asyncio(协程调度)和浏览器javascript(处理用户与网络事件),均依赖操作系统i…

    2025年12月20日 好文分享
    000
  • 解决 Angular 项目构建错误:包版本兼容性与依赖管理

    本文旨在深入探讨 Angular 项目构建过程中常见的错误,特别是由于包版本不兼容和依赖管理不当引起的问题。文章将详细阐述如何通过检查 Angular 核心版本与第三方库的兼容性、执行彻底的依赖清理与重新安装,以及遵循依赖管理的最佳实践来有效诊断并解决这些构建难题,确保项目的稳定性和可维护性。 1.…

    2025年12月20日
    000
  • 解决 Angular 构建错误:深度剖析依赖版本冲突与有效管理策略

    本教程旨在解决 Angular 项目中常见的构建错误,特别是由于依赖包版本不兼容引起的复杂问题。文章将详细指导如何识别 Angular 核心库与第三方库之间的版本冲突,提供一套系统的诊断流程,包括检查 Angular CLI 和核心版本、审查 package.json 依赖配置,并强调执行彻底的依赖…

    2025年12月20日
    000
  • 解决 Angular 构建错误:依赖包版本兼容性与模块管理指南

    本文旨在深入探讨 Angular 项目中常见的构建错误,特别是与依赖包版本不兼容和 node_modules 损坏相关的问题。我们将提供一套系统的诊断和解决流程,包括检查 Angular、Node.js 及第三方库的版本匹配,以及执行彻底的 node_modules 清理和重新安装,确保项目能够顺利…

    2025年12月20日
    000
  • 解决Python中btree模块安装的SyntaxError问题

    本文旨在解决Python环境中安装btree模块时遇到的SyntaxError: Missing parentheses in call to ‘print’错误。该问题通常源于btree模块或其构建依赖(如paver)使用了Python 2的语法,但在Python 3环境下…

    2025年12月20日
    000
  • 解决Python模块安装中的SyntaxError:以btree为例的兼容性指南

    在Python模块安装过程中,若遇到SyntaxError: Missing parentheses in call to ‘print’等错误,通常表明您正在尝试使用Python 3环境运行或构建依赖于Python 2语法的旧模块。本文将深入分析此类问题的根本原因,特别是涉…

    2025年12月20日
    000

发表回复

登录后才能评论
关注微信