nginx是乙個web應用及反向**工具,由一名俄羅斯程式設計師(igor)發明的;nginx是乙個免費的,開源的高效能http伺服器和反向**,以及imap / pop3**伺服器。 nginx以其高效能,穩定性,豐富的功能集,簡單的配置和低資源消耗而聞名。
2023年,乙個叫igor sysoev的俄羅斯哥們兒(貌似俄羅斯叫igor的人挺多的) 寫出了乙個叫nginx(和engine x諧音,取引擎之義)。 那時候有乙個時代背景,當時c10k(concurrency 10k,1萬併發)問題還是困擾絕大多數 web伺服器的乙個難題。nginx利用非同步事件驅動的架構寫成,是c10k問題的乙個很好的答卷。 nginx的第乙個公開發行版是在2023年發布的,之前都是作為俄羅斯訪問量第二的**rambler 的內部使用。nginx的主要優勢在於「輕、快、活」:
單台伺服器要同時支援併發 10k 量級的連線,這些連線可能是保持存活狀態的。
為什麼要介紹apache呢,是因為apache也是著名的web應用之一,並且在之前的歲月中,幾乎是碾壓web全場,雖然nginx後來者居上,但是還是要了解一下。
apache http伺服器是 robert mccool 在2023年寫成,並在2023年開始在apache軟體**會的 框架下進行開發。由於apache http伺服器是**會最開始的乙個專案也是最為有名的乙個專案, 所以通常大家提到apache這個詞都是說的apache http server。
apache web伺服器從2023年開始就是網際網路上最為流行的http伺服器。apache之所以這麼流行 很大程度上是由於相比其他的軟體專案,在apache**會的精心維護下他的文件十分的詳盡還有 整合的支援服務。
apache由於其可變性、高效能和廣泛的支援,經常是系統管理員的首選。他可以通過一系列 的語言相關的擴充套件模組支援很多解釋型語言的後端,而不需要連線乙個獨立的後端程式。
apache軟體**會也是利用開源軟體盈利的乙個範本。時至今日,apache軟體**會 已經枝繁葉茂,在**會名下的開源專案我們耳熟能詳的有:
nginx在併發效能上比apache強很多,如果是純靜態資源(、js、css)那麼nginx是不二之選。
apache有mod_php、在php類的應用場景下比nginx部署起來簡單很多。一些老的php專案用apache 來配置執行非常的簡單,例如wordpress。
對於初學者來說apache配置起來非常複雜冗長的類xml語法,甚至支援在子目錄放置.htaccess 檔案來配置子目錄的屬性。nginx的配置檔案相對簡單一點。
nginx的模組比較容易寫,可以通過寫c的mod實現介面性質的服務,並且擁有驚人的效能。 分支openresty,可以配合lua來實現很多自定義功能,兼顧擴充套件性和效能。
參考文件
演算法之回溯思想
回溯演算法實際上乙個類似列舉的搜尋嘗試過程,主要是在搜尋嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就 回溯 返回,嘗試別的路徑。回溯法是一種選優搜尋法,按選優條件向前搜尋,以達到目標。但當探索到某一步時,發現原先選擇並不優或達不到目標,就退回一步重新選擇,這種走不通就退回再走的技術為回溯法,...
演算法之回溯法
回溯法非常適合由多個步驟組成的問題,並且每個步驟都有多個選項。當我們在某一步選擇了其中乙個選項時,就進入下一步,然後面臨新選項,重複選擇,直至最終狀態。經典面試題1 矩陣中的路徑 詳見 劍指offer 面試題12 易錯點 1.由於路徑不能重複進入矩陣的格仔,因此還需定義和字元矩陣大小一樣的布林值矩陣...
演算法之回溯法
求解步驟 1,定義給定問題的解向量解空間 子集樹 排列樹 2,設計剪支函式 限界函式及約束函式 3,深度優先遍歷結合剪支得出解 求解過程 1,是否為完全解,是則輸出 2,是否為部分解,是則進行下乙個解分量的判斷 3,是否為當前可選集合中的最後乙個元素,是則回溯,重新判斷上乙個節點,否則判斷可選集合中...