1. 程式人生 > >LNMP架構一(介紹)

LNMP架構一(介紹)

一、LNMP架構介紹

LNMP代表的就是:Linux+Nginx+MySQL+PHP這種網站伺服器架構。
•    Linux:是一類Unix計算機作業系統的統稱,是目前最流行的免費作業系統。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
•    Nginx:是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器。
•    Mysql:是一箇中小型關係型資料庫管理系統。
•    PHP:是一種在伺服器端執行的嵌入HTML文件的指令碼語言。
這四種軟體均為免費開源軟體,組合到一起,成為一個免費、高效、擴充套件性強的網站服務系統。

     和之前提到的LAMP唯一不同的是,LNMP中的N指的是Nginx(類似於Apache的一種web服務軟體)。目前這種環境的應用也非常多。Nginx設計的初衷是提供一種快速、高效、多併發的Web服務軟體

     在靜態頁面的處理上,Nginx較Apache更勝一籌,但在動態頁面的處理上,Nginx並不比Apache有優勢。但是目前還是有很多愛好者對Nginx比較熱衷。隨著Nginx技術的不斷成熟,它在Web服務軟體領域的地位也會越來越高。並且php是作為一個獨立服務存在的,這個服務叫做php-fpm。Nginx直接處理靜態請求,動態請求會轉發給php-fpm。

Nginx詳細介紹:

     Nginx是俄羅斯人編寫的十分輕量級的HTTP伺服器,Nginx,它的發音為 “engine X”, 是一個高效能的HTTP和反向代理伺服器,同時也是一個IMAP/POP3/SMTP 代理伺服器.
     為什麼Nginx的效能要比Apache高得多?這得益於Nginx使用了最新的epoll(Linux 2.6核心)和kqueue(freebsd)網路I/O模型,而Apache則使用的是傳統的select模型。目前Linux下能夠承受高併發訪問的 Squid、Memcached都採用的是epoll網路I/O模型。處理大量的連線的讀寫,Apache所採用的select網路I/O模型非常低效。

      下面用一個比喻來解析Apache採用的select模型和Nginx採用的epoll模型進行之間的區別:假設你在大學讀書,住的宿舍樓有很多間房間,你的朋友要來找你。select版宿管大媽就會帶著你的朋友挨個房間去找,直到找到你為止。而epoll版 宿管大媽會先記下每位同學的房間號,你的朋友來時,只需告訴你的朋友你住在哪個房間即可,不用親自帶著你的朋友滿大樓找人。如果來了10000個人,都要 找自己住這棟樓的同學時,select版和epoll版宿管大媽,誰的效率更高,不言自明。同理,在高併發伺服器中,輪詢I/O是最耗時間的操作之一,select和epoll的效能誰的效能更高,同樣十分明瞭。
     在高併發連線的情況下,Nginx是Apache伺服器不錯的替代品。Nginx同時也可以作為7層負載均衡伺服器來使用。Nginx 0.8.46 + PHP 5.2.14 (FastCGI) 可以承受3萬以上的併發連線數,相當於同等環境下Apache的10倍。