当前位置: 首页 > news >正文

Nginx 双网卡反向代理 + Tomcat 内网集群 配置笔记

环境说明

  • Nginx 服务器:双网卡
    • 外网网卡:192.168.75.3(nat模式,供外部访问)
    • 内网网卡:192.168.160.3(仅主机模式,与 Tomcat 通信)
  • Tomcat 服务器:单网卡(内网)
    • Tomcat-1:192.168.160.4
    • Tomcat-2:192.168.160.5
  • 操作系统:CentOS 7 / RHEL 7 系列

一、Nginx 服务器配置

1.1 双网卡网络配置

① 外网网卡配置(示例 ens33)
vi/etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.75.3 NETMASK=255.255.255.0 GATEWAY=192.168.75.2 # 外网网关,必须配置 DNS1=8.8.8.8
② 内网网卡配置(示例 ens34)
vi/etc/sysconfig/network-scripts/ifcfg-ens36
TYPE=Ethernet BOOTPROTO=static NAME=ens34 DEVICE=ens34 ONBOOT=yes IPADDR=192.168.160.3 NETMASK=255.255.255.0 # 注意:内网网卡绝对不能写 GATEWAY ! name=ens36 # 注意 device=ens36 # 注意 defroute=no # 注意

1.2 系统环境准备(关键步骤)

# 关闭防火墙systemctl stop firewalld systemctl disable firewalld# 关闭 SELinux(或配置布尔值放行网络连接)setenforce0sed-i's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config# 如果不想完全关闭 SELinux,可仅开启 Nginx 网络权限(推荐生产环境):setsebool-Phttpd_can_network_connect1# 关闭 NetworkManager 服务(避免与 network 服务冲突)systemctl stop NetworkManager systemctl disable NetworkManager# 重启网络服务使配置生效systemctl restart network

1.3 验证网络连通性

# 检查 IP 是否生效ipaddr show ens33ipaddr show ens36# 测试与两台 Tomcat 的连通性ping192.168.160.4ping2192.168.160.5

二、Tomcat 服务器配置(两台操作相同)

2.1 内网 IP 配置

vi/etc/sysconfig/network-scripts/ifcfg-ens33# 根据实际网卡名修改
TYPE=Ethernet BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.160.4 # 另一台改为 192.168.160.5 NETMASK=255.255.255.0 # 内网机器不需要配置网关,除非有访问外网需求

2.2 系统环境准备

# 关闭防火墙systemctl stop firewalld systemctl disable firewalld# 关闭 SELinuxsetenforce0sed-i's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config# 重启网络systemctl restart network

2.3 启动 Tomcat

# 进入 Tomcat 安装目录的 bin 目录cd/opt/tomcat/bin# 根据实际路径调整./startup.sh# 确认 Tomcat 监听在正确的地址(应为 0.0.0.0 或具体内网 IP)netstat-tlnp|grep8080

三、Nginx 反向代理配置

3.1 编辑 Nginx 配置文件

vi/etc/nginx/conf.d/tomcat_proxy.conf# 新建独立配置文件

写入以下内容:

server { listen 80; server_name 192.168.75.3; # 外网访问的 IP 或域名 # 代理路径 /test4/ → Tomcat-4 location /test4/ { proxy_pass http://192.168.160.4:8080/; } # 代理路径 /test5/ → Tomcat-5 location /test5/ { proxy_pass http://192.168.160.5:8080/; } }

3.2 验证并重载 Nginx

nginx-t# 检查语法systemctl reload nginx# 重载配置

3.3 测试反向代理

# 在 Nginx 服务器本机测试curl-Ihttp://127.0.0.1/test4/# 从外网浏览器访问http://192.168.75.3/test4/ http://192.168.75.3/test5/

四、故障排查备忘录

故障现象可能原因检查命令
502 Bad GatewaySELinux 阻止 Nginx 联网getsebool httpd_can_network_connect
502 Bad Gateway防火墙阻挡 8080 端口systemctl status firewalld
404 Not Foundproxy_pass路径拼接错误检查末尾斜杠是否与 Tomcat 应用路径匹配
No route to host内网 IP 不在同一网段ping 192.168.160.4
Connection refusedTomcat 未启动或监听在 127.0.0.1netstat -tlnp | grep 8080
网卡启动失败多个网关配置冲突确保内网网卡配置文件中无GATEWAY
网卡名称不匹配配置文件DEVICE=与实际网卡名不符ip link show查看真实网卡名

五、关键注意事项

  1. 内网网卡绝对不能配置GATEWAY,否则会导致路由冲突,网络服务启动失败。

  2. 优先关闭 NetworkManager,避免与network服务争抢网卡控制权。

  3. SELinux 若不想关闭,务必执行:setsebool -P httpd_can_network_connect 1

  4. 修改配置文件后务必执行nginx -tsystemctl reload nginx,确保配置生效。

  5. 虚拟机网络模式必须统一:Nginx 内网网卡与 Tomcat 网卡应处于同一虚拟网络(如均为“仅主机模式”)。

http://www.cnnetsun.cn/news/1771489.html

相关文章:

  • 人机之间的有概念交互与无概念交互
  • 毕设-情绪雷达
  • stock-sdk-mcp 的实践整理侗
  • 【C++ 入门】第一个程序:Hello World 与基本语法规则
  • 基于51单片机的扫地小车代码功能说明
  • .NET 9容器化性能突降之谜:gRPC服务在Pod内延迟飙升200%的根因分析与eBPF验证方案
  • Deneyap 6轴IMU Arduino驱动库:轻量跨平台六自由度传感方案
  • STM32智能音乐闹钟开发全解析
  • 别再让AI瞎搞了!用Claude Code的SubAgent给你的项目分工,像管理团队一样清晰
  • 无障碍助手:OpenClaw利用Qwen3.5-9B实现屏幕阅读增强
  • PZEM003_Fud:RS485 Auto免方向控制电参数采集库
  • 嵌入式进程通信优化:nanomsg实战解析
  • 【MCP over Python 架构黄金标准】:基于gRPC+FastAPI+Redis Stream的5层解耦设计图,已通过10万TPS压测验证
  • 2025届最火的十大AI写作神器推荐
  • RPAsyncTCP:Pico W/Pico 2W 的异步TCP网络库
  • 零成本搭建私有云笔记!Windows+WebDAV+Cpolar实现Obsidian全平台同步指南
  • LangChain 1.0 实战:用 @tool 装饰器5分钟搞定你的第一个AI工具函数
  • 嵌入式SOAP客户端:轻量级IHC家居控制器通信库
  • FastAPI子应用挂载:别再让root_path坑你一夜眯
  • OpenClaw技能扩展实战:千问3.5-9B驱动微信公众号自动发布
  • OpenClaw技能开发:为Phi-3-vision-128k-instruct添加自定义视觉过滤器
  • FreeRTOS轻量级嵌入式日志系统设计与实现
  • 校园无人超市管理系统设计与实现
  • RWA抵押:稳定币的“硬锚革命”如何撬动十万亿级金融新基建?
  • 飞跨电容三电平拓扑的实战解析:从数学原理到SiC MOSFET的高频设计
  • Linux内核架构解析与学习路线指南
  • AI Agent 跑完任务怎么通知你?我写了个微信推送服务凉
  • ARM中断机制与Linux实现深度解析
  • 别再死记硬背!用这5个生活化比喻,轻松搞懂计算机网络三大交换技术
  • 别再手动解析了!STM32CubeMX + JY901陀螺仪,用DMA空闲中断实现稳定数据接收(附完整工程)