Nginx和Tomcat是两种不同定位的服务器软件,通常在Web架构中协同工作。以下是它们的核心关系及详细说明:
Nginx
Tomcat
flowchart LR
Client --> Nginx -->|反向代理| Tomcat
Nginx -->|直接返回| Static_Resources[(静态文件)]
server {
listen 80;
server_name example.com;
# 静态资源由Nginx直接处理
location ~* \.(jpg|css|js)$ {
root /var/www/static;
expires 30d;
}
# 动态请求转发到Tomcat
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server.xml
中的Connector端口(默认8080)与Nginx转发配置一致。maxThreads
)。场景 | 可选方案 | 说明 |
---|---|---|
纯静态网站 | 仅Nginx | 无需Tomcat |
小型Java应用 | 仅Tomcat | 直接暴露8080端口(不推荐生产) |
高并发动态应用 | Nginx + Tomcat集群 | 通过Nginx负载均衡多台Tomcat |
微服务架构 | Nginx + Spring Boot | Tomcat可替换为嵌入式容器 |
Host
、X-Forwarded-For
等头信息。Nginx与Tomcat的协作是经典的前后端分离架构,充分发挥各自优势:Nginx处理高并发和静态资源,Tomcat执行业务逻辑。这种组合是Java Web应用部署的黄金标准之一。