search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

伺服器的網站架構方案

目前常見的伺服器操作系統主要有三大類,一類是Windows,其代表產品就是Windows Server,主要應用於中小型企業;另一類是Linux,常見的產品有Cent OS,因為其具有較好的開放性和很高的性價比,因此在商業網站或各類中小型網站上有著廣泛的應用;還有一類是UNIX,代表產品包括HP-UX和IBM AIX,主要應用於金融證券等行業用戶。

安裝完伺服器操作系統,就需要開始搭建Web伺服器了,在Windows和Linux平台下架設Web伺服器的軟體非常多,其中最為知名的有:Windows附帶的IIS、Apache、Nginx等。

1、Windows附帶的IIS

Microsoft Windows的Web伺服器產品是Internet Information Server(IIS),它是Windows平台下流行的Web伺服器產品之一,很多網站都是建立在IIS平台上的。IIS提供了一個徒刑界面的管理工具,稱為Internet服務管理器,可用於配置和控制Internet服務。在IIS中包括了Web伺服器、FTP伺服器、NNTP伺服器和SMTP伺服器等,分別用於網頁瀏覽、文件傳輸、新聞服務和郵件發送等方面,它使得在Internet或區域網中發布網站成為一件很容易的事情。

2、Apache

Apache是世界上最流行的Web伺服器端軟體之一。由於Apache是開源軟體,所以不斷有人為它開發新的功能和新的特性,並修改原來的缺陷。Apache的特點是簡單、速度快、性能穩定,並可做代理伺服器來使用。本來它只用於小型網路,後來逐步擴充到各種UNIX系統中,尤其對Linux的支持相當完美。

3、Nginx

Nginx是一款高性能的Web伺服器和反向代理伺服器,起初由俄羅斯的程序設計師Igor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler使用。Nginx的特點是相較於Apache具有佔有內存少、穩定性高、併發能力強等優勢,事實上Nginx的併發能力確實在同類型的網頁伺服器中表現較好,因此很多國內外的門戶網站、行業網站都在是使用Nginx做為Web伺服器。

通常,架設網站伺服器可以通過一些常見的伺服器軟體組合來完成,常見的動態網站伺服器的「解決方案包」主要有:LAMP(Linux+Apache+MySQL+PHP)、LNMP(Linux+Nginx+MySQL+PHP)、WAMP(Windows+Apache+MySQL+PHP)、BAMP(BSD+Apache+MySQL+PHP)、WIMP(Windows+IIS+MySQL+PHP)、WISA(Windows+IIS+SQLServer+ASP)等等。下面將對常見到「解決方案包」進行逐一分析。

LAMP網站架構方案

LAMP(Linux-Apache-MySQL-PHP)網站架構是目前國際流行的Web框架,該框架包括:Linux操作系統,Apache網路伺服器,MySQL資料庫,Perl、PHP或者Python編程語言,所有組成產品均是開源軟體,是國際上成熟的架構框架,很多流行的商業應用都是採取這個架構,和Java/J2EE架構相比,LAMP具有Web資源豐富、輕量、快速開發等特點,微軟的.NET架構相比,LAMP具有通用、跨平台、高性能、低價格的優勢,因此LAMP無論是性能、質量還是價格都是企業搭建網站的首選平台。

對於大流量、大併發量的網站系統架構來說,除了硬體上使用高性能的伺服器、負載均衡、CDN等之外,在軟體架構上需要重點關注下面幾個環節:使用高性能的操作系統(OS)、高性能的網頁伺服器(Web Server)、高性能的資料庫(Databse)、高效率的編程語言等。下面我將從這幾點對其一一討論。

操作系統

Linux操作系統有很多個不同的發行版,如Red Hat Enterprise Linux、SUSE Linux Enterprice、Debian、Ubuntu、CentOS等,每一個發行版都有自己的特色,比如RHEL的穩定,Ubuntu的易用,基於穩定性和性能的考慮,操作系統選擇CentOS(Community ENTerprise Operating System)是一個理想的方案。

CentOS(Community ENTerprise Operating System)是Linux發行版之一,是RHEL/Red Hat Enterprise Linux的精簡免費版,和RHEL為同樣的源代碼,不過,RHEL和SUSE LE等企業版,提供的升級服務均是收費升級,無法免費在線升級,因此要求免費的高度穩定性的伺服器可以用CentOS替代Red Hat Enterprise Linux使用。

Web伺服器、緩存和PHP加速

Apache是LAMP架構最核心的Web Server,開源、穩定、模塊豐富是Apache的優勢。但Apache的缺點是有些臃腫,內存和CPU開銷大,性能上有損耗,不如一些輕量級的Web伺服器(例如nginx)高效,輕量級的Web伺服器對於靜態文件的響應能力來說遠高於Apache伺服器。

Apache做為Web Server是負載PHP的最佳選擇,如果流量很大的話,可以採用nginx來負載非PHP的Web請求。nginx是一個高性能的HTTP和反向代理伺服器,Nginx以它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。Nginx不支持PHP和CGI等動態語言,但支持負載均衡和容錯,可和Apache配合使用,是輕量級的HTTP伺服器的首選。

Web伺服器的緩存也有多種方案,Apache提供了自己的緩存模塊,也可以使用外加的Squid模塊進行緩存,這兩種方式均可以有效的提高Apache的訪問響應能力。Squid Cache是一個Web緩存伺服器,支持高效的緩存,可以作為網頁伺服器的前置cache伺服器緩存相關請求來提高Web伺服器的速度,把Squid放在Apache的前端來緩存Web伺服器生成的動態內容,而Web應用程序只需要適當地設置頁面實效時間即可。如訪問量巨大則可考慮使用memcache作為分散式緩存。

PHP的加速使用eAccelerator加速器,eAccelerator是一個自由開放源碼PHP加速器,優化和動態內容緩存,提高了性能PHP腳本的緩存性能,使得PHP腳本在編譯的狀態下,對伺服器的開銷幾乎完全消除。它還有對腳本起優化作用,以加快其執行效率。使PHP程序代碼執效率能提高1-10倍。

具體的解決方案有以下幾種:

1、squid + Apache + PHP + eAccelerator

使用Apache負載PHP,使用squid進行緩存,html或圖片的請求可以直接由squid返回給用戶。很多大型網站都採用這種架構。

2、nginx/Apache + PHP(fastcgi) + eAccelerator

使用nginx或Apache負載PHP,PHP使用fastcgi方式運行,效率較高。

3、nginx + Apache + PHP + eAccelerator

此方案綜合了nginx和Apache的優點,使用Apache負載PHP,nginx負責解析其他Web請求,使用nginx的rewrite模塊,Apache埠不對外開放。

資料庫

開源的資料庫中,MySQL在性能、穩定性和功能上是首選,可以達到百萬級別的數據存儲,網站初期可以將MySQL和Web伺服器放在一起,但是當訪問量達到一定規模后,應該將MySQL資料庫從Web Server上獨立出來,在單獨的伺服器上運行,同時保持Web Server和MySQL伺服器的穩定連接。

當資料庫訪問量達到更大的級別,可以考慮使用MySQL Cluster等資料庫集群或者庫表散列等解決方案。

總的來說,LAMP架構的網站性能會遠遠優於Windows IIS + ASP + Access(例如月光博客)這樣的網站,可以負載的訪問量也非常大,國內的大量個人網站如果想要支撐大訪問量,採用LAMP架構是一個不錯的方案。

綜上所述,基於LAMP架構設計具有成本低廉、部署靈活、快速開發、安全穩定等特點,是Web網路應用和環境的優秀組合。

LNMP網站架構方案

LNMP(Linux-Nginx-MySQL-PHP)網站架構是目前國際流行的Web框架,該框架包括:Linux操作系統,Nginx網路伺服器,MySQL資料庫,PHP編程語言,所有組成產品均是免費開源軟體,這四種軟體組合到一起,成為一個免費、高效的網站服務系統。

Linux、MySQL、PHP這些框架的優點之前已經介紹過,LNMP和LAMP不同的一點就是Web伺服器Nginx,那麼Nginx相比Apache有什麼優點呢?

Nginx是一個小巧而高效的Linux下的Web伺服器軟體,已在一些大型網站上運行多年,很多國內外的門戶網站、行業網站也都在是使用Nginx,相當的穩定。

Nginx的主要特點是穩定、功能豐富、安裝配置簡單、低系統資源。Nginx對於反向代理和負載均衡有不錯的支持。Nginx不僅僅可以做為Web伺服器,還可以做負載均衡伺服器、代理伺服器和郵件伺服器。

作為Web伺服器來說,相比 Apache,Nginx 使用更少的資源,支持更多的併發連接,Nginx處理靜態文件、索引文件,自動索引的效率非常高,體現更高的效率。

作為代理伺服器,Nginx可以實現無緩存的反向代理加速,提高網站的運行速度。

作為負載均衡伺服器,Nginx既可以在內部直接支持Rails和PHP,也可以支持HTTP代理伺服器對外進行服務,同時還支持簡單的容錯和利用演算法進行負載均衡;Nginx 用 C 編寫, 不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。

作為郵件代理伺服器來說, Nginx是一個非常優秀的郵件代理伺服器(最早開發這個產品的目的之一也是作為郵件代理伺服器)。

安裝配置上,Nginx安裝簡單、配置靈活、配置文件非常簡潔(還能夠支持perl語法);性能方面,Nginx是專門為性能優化而開發的,非常注重效率。它採用Poll模型,可以支持更多的併發連接,最大可以支持對50000個併發連接數的形影,而且只佔用很低的內存資源;可用性方面,Nginx支持熱部署,啟動速度特別迅速,可以在不間斷服務的情況下,對軟體版本或者配置進行升級,及時運行數月也無需重新啟動,幾乎可以做到7*24顯示不間斷運行。

可見,LNMP(Linux-Nginx-MySQL-PHP)這四種軟體的組合,可以成為一個免費、高效、擴展性強的網站服務系統。

WAMP是指在Windows伺服器上使用Apache、MySQL和PHP的集成安裝環境,可以快速安裝配置Web伺服器,一般說來,大家都習慣於將Apache、MySQL、PHP架設在Linux系統下,但是,不可否認的是Windows也有其優點,就是易用,界面友好,軟體豐富,操作起來非常方面,因此對新手來說在Windows平台下使用Apache、MySQL、PHP也確實是一個不錯的選擇。下面是幾款在Windows下可以使用的WAMP集成環境。

XAMPP - XAMPP是一款具有中文說明的功能全面的集成環境,XAMPP並不僅僅針對Windows,而是一個適用於Linux、Windows、Mac OS X 和Solaris 的易於安裝的Apache 發行版。軟體包中包含Apache 伺服器、MySQL、SQLite、PHP、Perl、FileZilla FTP Server、Tomcat等等。默認安裝開放了所有功能,安全性有問題,需要進行額外的安全設定。

WampServer - WampServe集成了Apache、MySQL、PHP、phpmyadmin,支持Apache的mod_rewrite,PHP擴展、Apache模塊只需要在菜單「開啟/關閉」上點點就搞定,省去了修改配置文件的麻煩。

AppServ - 集成了Apache、PHP、MySQL、phpMyAdmin,較為輕量。

總的來說,無論從安全性和性能上來講,LAMP(Linux + Apache + MySQL + PHP)都優於WAMP(Windows + Apache + MySQL + PHP),不過由於Windows具有易用的特點,WAMP也未嘗不是初學者的一個不錯的選擇。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦