Web 服务器和Web 中间件
一、什么是 Web 中间件
Web 中间件(Web Middleware)是运行在 Web 服务器与实际业务程序之间的一层“胶水”软件,用来统一处理公共事务,让开发者专注写业务逻辑。常见职责:
- 请求/响应拦截(鉴权、日志、跨域、限流)
- 连接后端资源(数据库、消息队列、缓存)
- 负载均衡、会话管理、安全过滤等
它像“机场安检+行李转盘”,所有乘客(HTTP 请求)都必须先经过它,再登机(业务代码)。
维度 | Web 服务器(Web Server) | Web 中间件(Web Middleware) |
---|---|---|
核心职责 | 监听 TCP 80/443,返回 HTML/JS/CSS/图片等静态内容;反向代理、SSL 终止 | 运行动态程序(PHP、Java、Python、Node.js),连接数据库,做鉴权、日志、限流等公共逻辑 |
常见软件 | Nginx、Apache httpd、IIS、Caddy | Tomcat、Jetty、uWSGI、Gunicorn、Express、Spring Boot、WebLogic |
对客户端 | 直接与浏览器通信 | 通常躲在 Web 服务器后面,不直接暴露 |
是否运行业务代码 | ❌ 不执行,只转发或返回文件 | ✅ 执行业务逻辑、模板渲染、数据库读写 |
举例场景 | Nginx 把 /static/logo.png 直接返回 | Tomcat 把 /user/login 交给 Java Servlet,查询 MySQL 后返回 JSON |
Web 服务器=“静态文件快递员”;
Web 中间件=“动态业务调度员”。
“Nginx 先接客,Tomcat 做业务”。
二、搭建一个网站需要的 7 大构件
按“从底层到浏览器”顺序,缺一不可:
构件 | 作用 | 常见方案 |
---|---|---|
1. 服务器硬件 | 运行所有软件 | 云主机 ECS / VPS / 物理机 |
2. 操作系统 | 基础环境 | Linux(CentOS、Ubuntu)或 Windows Server |
3. Web 服务器 | 监听 80/443,处理静态文件 | Nginx、Apache、IIS |
4. Web 中间件 / 应用服务器 | 运行动态程序,连接后端 | Tomcat、Node.js、Gunicorn、uWSGI、WebLogic |
5. 数据库 | 持久化数据 | MySQL、PostgreSQL、MongoDB |
6. 域名 + DNS | 把 IP 变成人类可读的网址 | 阿里云、Cloudflare、Namecheap 等注册/解析 |
7. 网站程序 / CMS | 具体业务逻辑或内容管理 | WordPress、Django、Flask、Shopify |