核心架构:Connector + Container
1 2 3 4 5 6 7 8 9 10 11
| 客户端 ↓ Connector:接收/解析 HTTP ↓ Engine ↓ Host:虚拟主机 ↓ Context:Web 应用 ↓ Wrapper:Servlet
|
- Connector:处理网络连接、HTTP、线程。
- Container:负责请求路由和 Servlet 执行。
- Tomcat:主要运行 Java Web 应用,不适合承担专业静态资源、SSL、负载均衡。
反向代理
生产常见架构:
Nginx:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| upstream tomcat { server 127.0.0.1:8080; }
server { listen 80; server_name example.com;
location / { proxy_pass http://tomcat; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
|
Tomcat 获取真实 IP:
1 2 3
| <Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="x-forwarded-for" protocolHeader="x-forwarded-proto"/>
|
一句话:
Tomcat = Java Web 容器;Nginx = 接入层/反向代理;Connector 负责网络,Container 负责业务请求。