
tomcat 和 nginx 中间件笔记

前言
lenovo技术运维一面有被问倒;内网服务器A和B,B服务器80端口运行tomcat服务,A和B如何通信?不了解tomcat,并且当时答偏了,只讲了直接PING和网络故障排查的思路。面试完复盘学习整理了一下。
解答
- 直接ping访问 B 上的 Tomcat 服务
- 查看配置文件,确认B的Tomcat服务是否正在监听80端口
- 检查服务器B的80端口是否开放,以确保A能访问B的80端口
- 测试是否能通信,A发送HTTP请求到B(curl wget)
- 使用Nginx反向代理(负载均衡、安全性)
- SSH隧道中的端口映射(顺带了解了一下内网穿透)
- 通过内网域名或DNS进行通信,修改A的/etc/hosts,添加B的IP和域名映射
深入
稍微深入了解了一下相关的中间件概念
关于Tomcat
tomcat是 web容器,类似于Nginx
二者区别
- Tomcat:
- 需要运行Java Web应用程序的环境。
- 企业级应用、需要完整Java EE功能支持的项目。
- 常用于处理动态资源,处理静态资源性能低(占用高)
- Nginx:
- 高并发的Web服务器需求。
- 常用于反向代理、负载均衡、处理静态资源
Nginx 与 Tomcat互补,常在一个系统下使用——通过 Nginx 处理静态内容,并将动态请求代理到 Tomcat 上。
关于nginx
关于 Nginx 的反向代理,作如下分辨,帮助理解正代反代:
- 反向代理:客户端请求Nginx,Nginx将请求转发给后端服务器。客户端并不知道后端服务器的存在。Nginx是后端服务器的代理人。
- 正向代理:客户端通过代理服务器A访问外部服务器,代理服务器代表客户端与目标服务器通信。目标服务器并不知道客户端的存在。代理服务器A是客户端的代理人。
反代的好处:
- 安全性:隐藏实际后端服务器
- 负载均衡:配置规则分发给多个后端服务器
- 缓存:可以缓存静态内容,减轻后端服务器压力
- SSL终结:Nginx可以作为SSL终结点,在Nginx层处理SSL/TLS加密的请求,减轻后端服务器的加密负担。客户端与Nginx之间是加密连接,而Nginx与后端服务器之间可以是非加密连接。如此可以减轻后端服务器的计算负担。
后续
联想一面技术面还挺友好,两周之后发了二面邮件,一周后感谢信,大概是排序挂了(
也算是学到了一些东西吧。秋招的第一家面试结束。后续可能会整理一下面试题(
- Title: tomcat 和 nginx 中间件笔记
- Author: Aoi Komiya
- Created at: 2024-09-23 19:14:00
- Updated at: 2024-09-25 20:15:41
- Link: https://blog.komiya.monster/2024/09/23/lenovo_interviwe_tomcat/
- License: This work is licensed under CC BY-NC-SA 4.0.