目前互聯網,只要是網站,就幾乎是 Wordpress 架站的。另外,現今各式各樣的網路服務幾乎都是 PHP 設計的。我發現這些網站的架站方式幾乎都是這兩個 — LAMP 、 LNMP。
LAMP 、LNMP?
這是 PHP 網站一直以來的套餐,甚至目前依然是很方便好用的選擇。通常幾個指令,就可以完整架設完畢。
這是後期,為了高併發的搭配方式,例如說,預期網站,將會有PCHOME一半的流量,那麼此種搭配方式,對於應付巔峰時段,有更便利的調教方式。
(Linux) CentOS — 最早Linux會有名,是因為紅帽RedHat企業版的成功,由於 Linux 本身是屬於Opensource ,所以RedHat 是必須釋出他們的原始碼的。因此,另一個組織 CentOS (後來已被RedHat併購) 就將這個原始碼拿來重新編譯,編譯出,擁有跟RedHat企業版一樣的穩定性的版本。所以,目前大部分網站除非需要交保護費給RedHat 買心安保險,否則都會是使用 CentOS。
(Linux) Rocky — RedHat 宣佈 2021 將不再有 CentOS 版本,只剩下上游測試版本 CentOS Stream 版本。Rocky Linux 專案是由 CentOS 的創始人 Gregory Kurtzer 所提出。後續發展,很有可能完全取代 CentOS !!
(Linux) Ubuntu — Linux 另一個有名的路線,就是 Debian,以穩定出名。有另一個組織拿它重新編譯成 Ubuntu,Ubuntu 以易用聞名,尤其桌面版甚至不輸給Windows。
Web server — 就傳統文字檔、圖檔,一開始最具優勢的就是 Apache,後來俄羅斯 Nginx 的出現,效能完勝 Apache 。
Database —網站使用的資料庫,以前是MySQL的天下。後來由於被 Oracle 併購,MySQL發明人擔心被併購後的MySQL發展受阻,另外編譯出一個分支,且完全相容於MySQL的資料庫 叫做 MariaDB,效能甚至比MySQL好。
PHP — 目前較新版本 PHP 7.0 以上,效能比其他語法好得多,且他是目前還是網站的主流語法。跟 Apache整合度高,且安裝方便,但是分散流量架構設計比較不方便。跟 Nginx 整合,雖然稍微不便,需要依賴 PHP-FPM ,但是,橫向擴展相當便利。
https://w3techs.com/technologies/comparison/ws-apache,ws-nginx
Why from LAMP to LNMP ?
目前架設Web server不只這幾種方案,但這兩種方案是主流。Nginx 處理靜態檔案(圖檔, html檔)效能比 Apache 好上不少。所以,目前中小規模的新創網站,我想應該幾乎都會是使用 Nginx 的方案。
雖然 Nginx 有效能優勢,但如果是內部用系統,沒有打算公開對外的網站,我覺得其實沒有必要特地,使用 LNMP 。例如 Nagios, Icinga,LAMP 的 Apache 的方式架設會讓人生輕鬆不少。
後網站時代
附帶提一下,網路服務氾濫及 App first 的時代,前後端分離已經是常態。所以 DevOps 工具鍊也很大一部份取代上述的 LNMP。
中大型規模的網路服務,目前相當程度的偏好使用 K8S / Docker 的容器來架設網路服務。