iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 26
2
Modern Web

菜鳥後端工程師的第一門課系列 第 26

[Day26] Devops - Web Server

2022 Medium 新版傳送門

Devops - Web Server

Web Server 網頁伺服器,主要是讓開發網站的人會接觸到的領域,
Web Server 是什麼?它的用處為何?
Web Server 能幫助我們管理網站,
設定頁面密碼、運算最大時間、加密連線等等功能,
讓網站本身的運行能夠乘載商業等級的使用,
不同的程式語言通常會預設不同的 Web Server ,
但部署成『 Production 』的網站,通常會使用目前市佔率前三的 Web Server 軟體:
『Nginx』、 『 Apache 』、『 IIS 』,
這三者涵蓋了接近 9 成以上的網站,而此篇就會介紹這三個 Web Server 。

在這邊有『環境』的概念要跟讀者說明,
當一個網站的程式碼還在本地開發時,
我們會說,這個程式碼的環境為『 development 』,
當我們開發完畢,要讓內部人測試、檢查,
我們會將這個程式碼的環境升級為『 Stage 』或是『 Test 』,
當測試通過,我們要將程式碼更新到真正運行的產品時,
我們就會將環境升級至『 Production 』,
因此當聽到旁邊的工程師在討論什麼『 Production 』時,
就要明白,他是指真正在外運行的那段程式碼,
以及放那些程式碼的機器喔!!

Nginx

https://www.nginx.com/wp-content/uploads/2018/09/nginx-social-share-1.png

Nginx 是強調效能的 Web Server ,
許多程式語言首選 Nginx 作為他們網站的 Web server,
因為 Nginx 設計架構的緣故,在其他 Web Server 因為逐漸提升的流量,
而導致越來越慢的讀取速度的情況下,
Nginx 仍能夠透過『異步』處理,維持高上許多的網頁瀏覽品質,
而放在 Nginx 下的程式碼也是屬於『靜態』狀態,
也幫助了讀取速度的提升,
最後,因為 Nginx 模組化的架構,
可以讓開發者只下載部分他所需要的模組,
因此讓整體的架構更為輕盈些。

缺點部分, Nginx 在設定上,較其他幾個 Web Server 複雜些,
而且由於靜態設定的緣故,在程式碼變更時需要重新編譯啟用。
另外的小缺點是,只能在 Linux 系列的機器內使用。

Apache

https://images.g2crowd.com/uploads/product/image/social_landscape/social_landscape_1489696230/apache-server.png

Apache 是一個非常老牌的 Web Server,
比 Nginx 還老上 10 年左右,
因此累積的,就是許多網路上的開發者經驗,
對於初入門者來說,是有很多他人的建議可以參考,
學習曲線較為低些,穩定性也高上許多。
而設定上,Apache 使用了『htaccess 』的方法,
讓整體設定也較為平易近人。
此外在相容性方面,Apache 支援 Linux 和 Windows 兩大作業系統,
因此許多略有年代的網站,或是行之有年的外包公司,
基本上如果使用 PHP 開發,都是搭配 Apache 來作為 Web Server ,
PHP 最有名的無腦開發懶人包,『XAMPP』,也是使用 Apache。

但 Apache 一直有些效能問題,
因為設計架構的緣故,在面對大流量的處理上,
是比 Nginx 差上許多,且會佔用機器的處理資源。
且 Apache 比較笨重,是一款巨大的 Web Server,
不同模塊的相依性高,較難像 Nginx 一樣做出拆解的架構設計。

IIS

http://i.imgur.com/vuLcB.png

IIS 是微軟推出的 Web Server ,
基本上是只限定用在C# 開發的應用程式,
以及微軟自己的 Windows 作業系統主機上,
而由於是微軟在背後支持的 Web Server ,
因此是具有一個巨大科技公司規模等級的技術支援,
也因為只能在 Windows 平台,因此提供較佳的安全性,
非常適用於微軟生態系開發的應用程式。
最後則是學習曲線應是三者最低的,
甚至可以透過 GUI 操作,就設定好該有的設定。

缺點部分也非常顯而易見,
在效能上,同時和 Apache 被 Nginx 擊敗,
且只能限定在微軟的主機上運作,
因此擴展性上差了許多。
穩定性上也不如行之有年的 Apache,
偶爾會出現奇怪的 500 錯誤。

如果有任何問題,或是指證文中的錯誤,歡迎寄信給我或留言在下面喔~


上一篇
[Day25] Devops - 雲端服務
下一篇
[Day27] Devops - 快取( Cache ) 和 CICD
系列文
菜鳥後端工程師的第一門課30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言