国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
生產(chǎn)環(huán)境中的一些web server(主要是三巨頭apache, nginx, lighttpd)

關(guān)于生產(chǎn)環(huán)境中使用的Web Server

轉(zhuǎn)載請注明原文鏈接:http://blog.csdn.net/omohe/archive/2009/07/09/4335735.aspx

版本:v1.0  作者:OMO 最后修改時間:2009.07.09


1. Apache服務(wù)器和nginx的優(yōu)缺點:
我們之前大量使用Apache來作為HTTPServer。

Apache具有很優(yōu)秀的性能,而且通過模塊可以提供各種豐富的功能。

1)首先Apache對客戶端的響應(yīng)是支持并發(fā)的 ,運行httpd這個daemon進(jìn)程之后,它會同時產(chǎn)生多個孩子進(jìn)程/線程,每個孩子進(jìn)程/線程分別對客戶端的請求進(jìn)行響應(yīng);
2)另外,Apache可以提供靜態(tài)和動態(tài)的服務(wù) ,例如對于PHP的解析不是通過性能較差的CGI實現(xiàn)的而是通過支持PHP的模塊來實現(xiàn)的(通常為mod_php5,或者叫做apxs2)。
3)缺點:
因此通常稱為Apache的這種Server為process-based server ,也就是基于多進(jìn)程的HTTPServer,因為它需要對每個用戶請求創(chuàng)建一個孩子進(jìn)程/線程進(jìn)行響應(yīng);
這樣的缺點是,如果并發(fā)的請求非常多(這在大型門戶網(wǎng)站是很常見的)就會需要非常多的線程,從而占用極多的系統(tǒng)資源CPU和內(nèi)存。因此對于并發(fā)處理不是Apache的強項。
4)解決方法:
目前來說出現(xiàn)了另一種WebServer,在并發(fā)方面表現(xiàn)更加優(yōu)越,叫做asynchronous servers異步服務(wù)器。最有名的為Nginx和Lighttpd。 所謂的異步服務(wù)器是事件驅(qū)動程序模式的event-driven,除了用戶的并發(fā)請求通常只需要一個單一的或者幾個線程。因此占用系統(tǒng)資源就非常少。這幾種又被稱為lightweight web server。
舉例,對于10,000的并發(fā)連接請求,nginx可能僅僅使用幾M的內(nèi)存;而Apache可能需要使用幾百M的內(nèi)存資源。


2. 實際中單一的使用:
1)關(guān)于單一使用Apache來作為HTTPServer的情況我們不用再多做介紹,非常常見的應(yīng)用;
上面我們介紹到Apache對于PHP等服務(wù)器端腳本的支持是通過自己的模塊來實現(xiàn)的,而且性能優(yōu)越。
2)我們同樣可以單單使用nginx或者lighttpd來作為HTTPServer來使用。
nginx和lighttpd和Apache類似都通過各種模塊可以對服務(wù)器的功能進(jìn)行豐富的擴展,同樣都是通過conf配置文件對各種選項進(jìn)行配置。
對于PHP等,nginx和lighttpd都沒有內(nèi)置的模塊來對PHP進(jìn)行支持,而是通過FastCGI來支持的。
Lighttpd通過模塊可以提供CGI, FastCGI和SCGI等服務(wù),Lighttpd is capable of automaticallyspawning FastCGI backends as well as using externally spawnedprocesses.
nginx則沒有自己提供處理PHP的功能,需要通過第三方的模塊來提供對PHP進(jìn)行FastCGI方式的集成。
nginxhas module support for FastCGI via a built-in module, SCGI and WSGI via3rd Party module. The user must be able to spawn the processesseparately because nginx is not able to automatically spawn them [9].nginx does not support normal CGI applications [10], which is actuallya security benefit.

詳細(xì)可以參看:http://www.wikivs.com/wiki/Lighttpd_vs_nginx

3.反向代理Reverse Proxy:
0) 代理服務(wù)器的概念proxy server:

代理服務(wù)器
的概念很容易理解,就是通常作為兩臺機器中間的機器,需要提供的功能往往有:
緩存caching,安全, 負(fù)載均衡load banlancing。
所謂的負(fù)載均衡就是,很多機器使用一個代理的時候,代理服務(wù)器需要對各個服務(wù)器進(jìn)行均衡。
我們常見的代理是正向的代理,例如我們機房有20臺電腦要上網(wǎng),現(xiàn)在只有一個電腦可以上網(wǎng),那么可以使用這臺電腦作為代理服務(wù)器,所有通過網(wǎng)絡(luò)的數(shù)據(jù)傳輸都要經(jīng)過該代理服務(wù)器。

而反向代理,是和正向代理相反的 ,正向代理針對服務(wù)接收方用戶來說,反向代理或者叫做服務(wù)器端代理是針對服務(wù)器端的,意思是有多臺服務(wù)器,反向代理服務(wù)器對用戶的請求代理發(fā)送給其中的一臺服務(wù)器進(jìn)行處理。
更多可以參看:http://en.wikipedia.org/wiki/Proxy_server

1) 實際中對于一個大型網(wǎng)站,我們通常使用很多臺sever來構(gòu)成一個cluster來對用戶的各種請求進(jìn)行響應(yīng)。
因此通常需要一臺或者多臺反向代理服務(wù)器來對多臺Server進(jìn)行服務(wù)。
這個反向代理服務(wù)器需要提供的功能一般都包括:
    安全方面;緩存壓縮功能;負(fù)載均衡功能;
具體可以參看:http://en.wikipedia.org/wiki/Reverse_proxy

(需要注意反向代理服務(wù)器和防火墻優(yōu)點類似,但是防火墻一般只有安全方面的考慮,沒有緩存和負(fù)載均衡方面的功能。)

3) 綜上,實際中Web服務(wù)器端的架構(gòu)
通常是多臺Web服務(wù)器運行并行地提供服務(wù);同時還需要在Web服務(wù)器前段部署一臺或者多臺反向代理服務(wù)器,一方面緩存一些靜態(tài)數(shù)據(jù),或者將Web服務(wù)器動態(tài)產(chǎn)生的一些內(nèi)容緩存,另一方面通過負(fù)載均衡功能,可以均勻地將用戶的并發(fā)請求傳遞給多臺Web服務(wù)器進(jìn)行處理。
這樣一方面可以大大降低后面每臺Web服務(wù)器的負(fù)擔(dān);另一方面可以實現(xiàn)多臺服務(wù)器的負(fù)載均衡。

4. 實際中使用nginx或者lighttpd當(dāng)做反向代理服務(wù)器,后臺布置多臺ApacheHTTPServer:
1)上面說到,nginx和lighttpd的優(yōu)點在于速度快,輕量級,在處理多用戶并發(fā)方面要大大優(yōu)于Apache服務(wù)器。
因此我們通??梢园阉麄冏鳛榉聪虼矸?wù)器放置到多臺的Apache Web服務(wù)器前段,來一方面緩存數(shù)據(jù),另一方面實現(xiàn)多臺服務(wù)器的負(fù)載均衡。
2)當(dāng)然了Apache本身通過mod_proxy和mod_cache也可以實現(xiàn)反向代理和緩存功能 ,但是在處理高并發(fā)方面還是無法與nginx和lighttpd這種輕量的異步模式的服務(wù)器來比較。
3)另外,利用nginx和lighttpd的反響代理功能,我們可以通過設(shè)置其configuration文件,當(dāng)客戶端請求的是靜態(tài)內(nèi)容(例如一些圖片,js,html文件等)的話,直接由nginx或者lighttpd進(jìn)行響應(yīng);
如果需要訪問動態(tài)內(nèi)容(通常需要實時從數(shù)據(jù)庫中讀取)的話,則通過反向代理,nginx等可以將請求發(fā)送給后臺等待的Apache進(jìn)行響應(yīng),然后Apache將相應(yīng)的結(jié)果返回給nginx,后者再響應(yīng)用戶的時候還可以進(jìn)行緩存。
4)有時候還可以使用一些緩存的工具,例如Squid。
另外nginx也提供了對一些緩存功能的支持,例如memcache 等。
5)因此如果從圖形來分析的話,通常的架構(gòu)如下:
http://sudone.com/archie/app-nginx-squid-nginx.html
http://sudone.com/archie/app_nginx_squid.html
http://www.linuxvirtualserver.org/architecture.html

因此總結(jié),實際中,我們可以使用:nginx-squid-apache的方式來構(gòu)建server cluster;
也有一些人,純粹使用nginx代替了apache不再使用apache了...
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
反向代理
大型網(wǎng)站后臺架構(gòu)的Web Server與緩存
nginx+PHP+PHP-FPM(FastCGI)在Ubuntu上的安裝和配置
給小白的 Nginx 30分鐘入門指南
Nginx是什么?Nginx介紹 - Licess's Blog
Linux為什么選擇Nginx?Linux入門快嗎?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服