linuxDeploy搭建linux服務器篇,在寫到安裝寶塔面板時寫不下去了,雖然寶塔面板成功安裝,但實際運行中一堆BUG,暫時處于卡殼狀態,所以還在不斷排雷中......
所以,本來想先寫內網穿透篇,臨時用ksweb建個站,才發現文章中有錯誤地方
網站建設 | 我用破舊Android機建了個WEB服務器--基礎搭建
網站建設 | 我用破舊Android機建了個WEB服務器--數據庫配置
lghttpd/Nginx/apach,三選一運行即可,文中圖片前面配置了lghttpd,后面圖片又運行了Apache,是錯的。所以,這里先說下Nginx/Lighttpd/Apache三大web服務器的對比吧。
一.軟件介紹(nginx lighttpd apache)
1.nginx
Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,在BSD-like 協議下發行。其特點是占有內存少,并發能力強,事實上nginx的并發能力在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。
其將源代碼以類BSD許可證的形式發布,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。
nginx做為HTTP服務器,有以下幾項基本特性:
- 處理靜態文件,索引文件以及自動索引;打開文件描述符緩沖。
- 無緩存的反向代理加速,簡單的負載均衡和容錯.
- FastCGI,簡單的負載均衡和容錯.
- 模塊化的結構。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其它代理服務器處理單頁中存在的多個SSI,則這項處理可以并行運行,而不需要相互等待。
- Nginx專為性能優化而開發,性能是其最重要的考量,實現上非常注重效率。它支持內核Poll模型,能經受高負載的考驗,有報告表明能支持高達 50,000個并發連接數。
- Nginx具有很高的穩定性。其它HTTP服務器,當遇到訪問的峰值,或者有人惡意發起慢速連接時,也很可能會導致服務器物理內存耗盡頻繁交換,失去響應,只能重啟服務器。例如當前apache一旦上到200個以上進程,web響應速度就明顯非常緩慢了。而Nginx采取了分階段資源分配技術,使得它的CPU與內存占用率非常低。nginx官方表示保持10,000個沒有活動的連接,它只占2.5M內存,所以類似DOS這樣的攻擊對nginx來說基本上是毫無用處的。就穩定性而言,nginx比lighthttpd更勝一籌。
- Nginx支持熱部署。它的啟動特別容易, 并且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。你還能夠在不間斷服務的情況下,對軟件版本進行進行升級。
2. lighttpd
Lighttpd 是一個德國人領導的開源Web服務器軟件,其根本的目的是提供一個專門針對高性能網站,安全、快速、兼容性好并且靈活的web server環境。具有非常低的內存開銷、cpu占用率低、效能好以及豐富的模塊等特點。
Lighttpd是眾多OpenSource輕量級的web server中較為優秀的一個。支持FastCGI,CGI,Auth,輸出壓縮(output compress),URL重寫,Alias等重要功能;而Apache之所以流行,很大程度也是因為功能豐富,在lighttpd上很多功能都有相應的實現了,這點對于apache的用戶是非常重要的,因為遷移到lighttpd就必須面對這些問題。
Fastcgi的優點在于:
- 從穩定性上看, fastcgi是以獨立的進程池運行來cgi,單獨一個進程死掉,系統可以很輕易的丟棄,然后重新分配新的進程來運行邏輯.
- 從安全性上看, fastcgi和宿主的server完全獨立, fastcgi怎么down也不會把server搞垮,
- 從性能上看, fastcgi把動態邏輯的處理從server中分離出來, 大負荷的IO處理還是留給宿主server, 這樣宿主server可以一心一意作IO,對于一個普通的動態網頁來說, 邏輯處理可能只有一小部分, 大量的圖片等靜態IO處理完全不需要邏輯程序的參與(注1)
- 從擴展性上講, fastcgi是一個中立的技術標準, 完全可以支持任何語言寫的處理程序(php,JAVA,Python…)
3.apache
Apache是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠并且可通過簡單的API擴充,將Perl/Python等解釋器編譯到服務器中。
apache 的特性:
- 幾乎可以運行在所有的計算機平臺上;
- 支持最新的http/1.1協議 ;
- 簡單而且強有力的基于文件的配置(httpd.conf);
- 支持通用網關接口(cgi) ;
- 支持虛擬主機;
- 支持http認證;
- 集成perl;
- 集成的代理服務器;
- 可以通過web瀏覽器監視服務器的狀態, 可以自定義日志.;
- 支持服務器端包含命令(ssi);
- 支持安全socket層(ssl);
- 具有用戶會話過程的跟蹤能力;
- 支持fastcgi;
- 支持java servlets;
二.3種WEB服務器的比較:
ApacheNginxLighttpdproxy代理非常好非常好一般rewriter好非常好一般fcgi不好好非常好熱部署不支持支持不支持系統壓力比較很大很小比較小穩定性好非常好不好安全性好一般一般技術支持非常好很少一般靜態文件處理一般非常好好vhosts支持不支持支持反向代理一般非常好一般session sticky支持不支持不支持
注:在相對比較大的網站,節約下來的服務器成本無疑是客觀的。而有些小型網站往往服務器不多,如果采用 Apache 這類傳統 Web 服務器,似乎也還能撐過去。但有其很明顯的弊端:Apache 在處理流量爆發的時候(比如爬蟲或者是 Digg 效應) 很容易過載,這樣的情況下采用 Nginx 最為合適。
建議方案:
Apache 后臺服務器(主要處理php及一些功能請求 如:中文url)
Nginx 前端服務器(利用它占用系統資源少得優勢來處理靜態頁面大量請求)
Lighttpd 圖片服務器
總體來說,隨著nginx功能得完善將使他成為今后web server得主流。
大網站一般都幾個一起用, 前邊放的nginx, 后邊放在lighttpd, 從上面的性能表就看得出,而apache比較綜合性, 建中小網站比較合適, 功能強大, 應用廣泛。