一、什么是 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 |