iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0

Day 9 | 📦 部署的初探:AP/Web Server

嗨,各位鐵人夥伴! 👋

這是一篇專為新手設計的入門指南。如果您是經驗豐富的開發者,可以考慮跳過,或將它分享給需要引導的新人,相信能有效節省您寶貴的指導時間! 😉

本文將以最淺顯易懂的方式,帶您一次搞懂以下核心概念:

  • 🤔 何謂「部署」?
  • ⚙️ Web Application 如何運作?
  • 🌐 Web Server vs. AP Server

📝 備註:關於運行環境(如實體機、VM、Docker、K8S)等較複雜的觀念,將在後續的獨立篇章中詳細說明。


🤔 何謂部署 (Deploy)?

簡單來說,部署就是將您完成的程式碼,放置到指定的運行環境上,並使其能夠被其他人存取的過程。

例如,將您的系統部署到「生產環境」(Production Environment),以便真實用戶 (User) 能夠開始使用。


⚙️ 系統是如何運作的?

您的系統從程式碼到實際運作,大致可以簡化為以下流程:

您的程式碼 ➡️ 軟體層 Server ➡️ 運行環境 ➡️ 硬體 Server

本章節將聚焦於 軟體層 Server 的概念。 運行環境硬體 Server 將在後續篇章深入探討。

在業界,「Server」一詞通常有兩種意涵:

  1. 軟體 Server (Software Server)

    • 這是一種應用程式,專門用來處理來自網路的請求。本文的主角 Web ServerAP Server 就屬於此類。
    • 您編寫的程式碼,通常就是部署在軟體 Server 之上。
  2. 硬體 Server (Hardware Server)

    • 這指的是運行您系統的實體主機,通常會被妥善地放置在專業的機房中。

綜合來看,當我們部署一個 Web 應用程式時,您的程式碼需要與一個軟體伺服器(Web ServerAP Server)結合,形成一個完整的應用程式包。接著,這個應用程式包會被放置在一個運行環境(可能是實體機或虛擬機或 Docker 容器)中。最後,這一切都在底層的硬體伺服器上運行,確保您的服務穩定可靠。


🌐 Web Server vs. AP Server

接下來,我們來詳細解析軟體層的兩種核心伺服器:Web ServerAP Server

Web Server (網站伺服器)

  • 🎯 主要功能:處理來自客戶端(如瀏覽器)的 HTTP 請求,並回傳靜態內容
  • 📄 靜態內容範例:HTML、CSS、JavaScript 檔案、圖片、影片等。
  • 💡 應用場景
    • 前端框架若採用單純的 CSR (Client-Side Rendering) 架構,其打包後的產物(HTML, CSS, JS)可以直接部署在 Web Server 上。
    • 也可以專門用來存放圖片、文件等靜態資源,以優化載入速度。
  • 🛠️ 常見軟體
    • Nginx:目前市佔率極高,功能強大,同時也能作為反向代理 (Reverse Proxy)。
    • Apache HTTP Server:老牌的 Web Server,依然被廣泛使用。

AP Server (Application Server / 應用程式伺服器)

  • 🎯 主要功能:除了能處理 HTTP 請求外,其核心職責是執行應用程式的動態商業邏輯
  • ⚙️ 商業邏輯範例:處理複雜運算、操作資料庫、與其他外部服務溝通等。在傳統的單體式架構中,AP Server 也能動態生成前端的 HTML 頁面。
  • 💡 應用場景:主要用於部署後端服務的程式碼。
  • 🛠️ 常見軟體
    • Tomcat:常用於執行 Java 應用程式 (如 Spring)。
    • Node.js:其本身就是一個 JavaScript 的運行環境,內建了 AP Server 的功能。
    • Gunicorn / uWSGI:常用於執行 Python 應用程式 (如 Django/Flask)。

📝 補充說明

  1. 語言與框架的關聯:AP Server 的選擇時常與您使用的程式語言或框架緊密相關。許多語言都有其專屬或推薦的 AP Server。
  2. 內嵌式 Server:現代許多後端框架(如 Spring Boot)都內嵌了 AP Server(例如 Tomcat),讓開發者在開發階段能快速啟動應用程式,無需額外設定。
  3. 生產環境的考量:某些框架預設的內建 AP Server 可能不適合直接用於生產環境。為了追求更高的效能與穩定性,在正式部署時,通常會建議更換為更專業、高效能的 AP Server(例如用 Gunicorn 取代 Flask 的內建伺服器)。

上一篇
Day 8 | 🚪 門禁與權限之鑰:深入解析 Authentication & Authorization
下一篇
Day 10 | 🌉 注意事項:套件安裝問題要小心
系列文
前輩沒空教?你的第一份甲方IT三十天自學指南11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言