日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

LAMP架构简述_IT架构

發(fā)布時(shí)間:2023/12/24 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 LAMP架构简述_IT架构 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

閱讀目錄

  • 圖片架構(gòu)詳解              
  • LAMP架構(gòu)以及通信過程
  • LNMP架構(gòu)優(yōu)缺點(diǎn)
  • Nginx/APACHE + tomcat + MySQL

                  

圖片架構(gòu)詳解              

LAMP/LNMP:是有Linux系統(tǒng),Apache網(wǎng)絡(luò)服務(wù)器或者Nginx服務(wù)器,MySQL數(shù)據(jù)庫。php。LAMP/LNMP具有通用,跨平臺(tái),高性能的又是。

LNMT/LAMt :整合 Apache Http Server 和 Tomcat 可以提升對(duì)靜態(tài)文件的處理性能、利用 Web 服務(wù)器來做負(fù)載均衡以及容錯(cuò)、無縫的升級(jí)應(yīng)用程序。

優(yōu)點(diǎn):

1.提升對(duì)靜態(tài)文件的處理性能

2.利用 Web 服務(wù)器來做負(fù)載均衡以及容錯(cuò)

3.無縫的升級(jí)應(yīng)用程序

LAMP架構(gòu)以及通信過程

LAMP的架構(gòu):

  LAMP是一個(gè)多C/S架構(gòu)的平臺(tái),最初級(jí)為web客戶端基于TCP/IP通過http協(xié)議發(fā)起傳送,這個(gè)請(qǐng)求可能是動(dòng)態(tài)的,也可能是靜態(tài)的。所以web服務(wù)器通過發(fā)起請(qǐng)求的后綴來判斷,如果是靜態(tài)的資源就由web服務(wù)器自行處理,然后將資源發(fā)給客戶端。如果是動(dòng)態(tài)這時(shí)web服務(wù)器會(huì)通過CGI(Common Gateway interface)協(xié)議發(fā)起給php。這里但是如果php是以模塊形式與Web服務(wù)器聯(lián)系。那么他們是通過內(nèi)部共享內(nèi)存的方式。如果是php單獨(dú)的放置與一臺(tái)服務(wù)器,那么他們是通過sockets套接字監(jiān)聽的方式通信(這又是一個(gè)C/S架構(gòu))。這時(shí)php會(huì)相應(yīng)的執(zhí)行一段程序,如果在執(zhí)行程序時(shí),需要用到數(shù)據(jù)。那么php就會(huì)通過mysql協(xié)議發(fā)送給mysql服務(wù)器(也可以看作是一個(gè)C/S架構(gòu))。由mysql服務(wù)器處理,將數(shù)據(jù)供給php程序。

LAMP流程:

1. 用戶發(fā)送http請(qǐng)求到達(dá)httpd服務(wù)器

2. httpd解析url獲取需要的資源的路徑,通過內(nèi)核空間讀取硬盤資源,如是靜態(tài)資源,則構(gòu)建響應(yīng)報(bào)文,發(fā)回給用戶

3. 如果是動(dòng)態(tài)資源,將資源地址發(fā)給php解析器,解析php程序文件,解析完畢將內(nèi)容發(fā)回給httpd,httpd構(gòu)建響應(yīng)報(bào)文,發(fā)回給用戶

4. 如果涉及到數(shù)據(jù)庫操作,則利用php-mysql驅(qū)動(dòng),獲取數(shù)據(jù)庫數(shù)據(jù),返回給PHP解析器。

Apache,MySQL,PHP 之間的聯(lián)動(dòng)工作:

1、apache + php結(jié)合的方式大概幾種:

第一種:把php編譯時(shí)直接編譯成apache的模塊、module模塊化的方式進(jìn)行工作(apahce默認(rèn)的這種方式)。

第二種:CGI、通用網(wǎng)關(guān)接口、apache基于CGI跟hph通信

第三種:fastcgi、他也是一種協(xié)議、在這種模塊下他們兩個(gè)是這樣結(jié)合的:

  本來php是做為一個(gè)模塊或都是php解析器運(yùn)行的,不是監(jiān)聽在某個(gè)套接字上接收別人的請(qǐng)求的,而是讓別人調(diào)用為一個(gè)進(jìn)程使用的,可能是做為別人的子進(jìn)程在運(yùn)行,但是工作在fastcgi這種模塊下的hph自行啟用為一個(gè)服務(wù)進(jìn)程,

  他監(jiān)聽在某個(gè)套接字上,隨時(shí)可以接受來自客戶端的請(qǐng)求的,他也是有一個(gè)主進(jìn)程的,為了可以響應(yīng)多個(gè)用戶的請(qǐng)求,他會(huì)啟用多個(gè)子進(jìn)程,這些子進(jìn)程我們也可以稱為工作進(jìn)程,

他也是有空閑進(jìn)程的,一但有客戶請(qǐng)求他馬上使用空閑的進(jìn)程響應(yīng)客戶端的請(qǐng)求,將結(jié)果返回給前端的調(diào)用者,在php5.3.3版本之前他是沒有這個(gè)能力了,只能工作在模塊和CGI的方式下,而在5.3.3之后這個(gè)模塊直接被收進(jìn)php模塊中,這種模塊就叫php-fpm。

所以在以后編譯php時(shí),要想跟apache結(jié)合,就要編譯成php-fpm,這是基于fastcgi工作的模式,并啟動(dòng)這服務(wù)進(jìn)程,也就意味著他是通過套接字跟前端的調(diào)用者通信,既然基于套按字通信了,那么前端的web服務(wù)器和后面的php服務(wù)器完全可以工作在不同的主機(jī)上,實(shí)現(xiàn)了所謂的分層機(jī)制。

apache不會(huì)跟數(shù)據(jù)庫打交道,他是個(gè)靜態(tài)web服務(wù)器,跟數(shù)據(jù)庫打交道的是應(yīng)用程序,作為應(yīng)用程序的源驅(qū)動(dòng)能夠基于某個(gè)API跟服務(wù)器之間建立會(huì)話,而后他會(huì)通過我們的mysql語句發(fā)送給數(shù)據(jù)庫,數(shù)據(jù)庫再將結(jié)果返回給應(yīng)用程序,不是php進(jìn)程,而是php進(jìn)程中所執(zhí)行的代碼。

2、php + mysql的通信:

PHP跟mysql怎么整合起來呢,php又怎么被httpd所調(diào)用呢

首先httpd并不具備解析代碼的能力,他要依賴于php的解析器,接著php本身不依賴于mysql,他只是一個(gè)解析器,能執(zhí)行代碼就OK了,那他什么時(shí)候用到mysql呢,如果要在mysql中存數(shù)據(jù)時(shí)才用到mysql,只是當(dāng)php中有運(yùn)行mysql語句時(shí)才用到mysql。

php語言要想聯(lián)系mysql,通常用到php的驅(qū)動(dòng),rpm包的叫php_mysql,php跟mysql沒有一點(diǎn)關(guān)系,只有程序員在php中編寫mysql語句時(shí)才連接mysql來執(zhí)行sql語句的。

  基于php-mysql去連接mysql只使用一個(gè)函數(shù)mysql_connect();而mysql_connect()正是php-mysql提供的一個(gè)API,只要指明要連接的服務(wù)器即可。

            

LNMP架構(gòu)優(yōu)缺點(diǎn)

LNMP的大致原理跟LAMP相差不多,但是 ,據(jù)說,LNMP不支持CGI模式。

LNMP是Linux+Nginx+Mysql+PHP的組合方式,其特點(diǎn)是利用Nginx的快速與輕量級(jí),替代以前的LAMP(Linux+Apache+Mysql+PHP)的方式。由于安裝方便,并且安裝腳本也隨時(shí)更新。

LNMP方式的優(yōu)點(diǎn):占用VPS資源較少,Nginx配置起來也比較簡單,利用fast-cgi的方式動(dòng)態(tài)解析PHP腳本。

LNMP方式的缺點(diǎn):php-fpm組件的負(fù)載能力有限,在訪問量巨大的時(shí)候,php-fpm進(jìn)程容易僵死,容易發(fā)生502 bad gateway錯(cuò)誤

綜上所述:
基于 LAMP 架構(gòu)設(shè)計(jì)具有成本低廉、部署靈活、快速開發(fā)、安全穩(wěn)定等特點(diǎn),是 Web 網(wǎng)絡(luò)應(yīng)用和環(huán)境的優(yōu)秀組合。若是服務(wù)器配置比較低的個(gè)人網(wǎng)站,當(dāng)然首選 LNMP 架構(gòu)。
當(dāng)然,在大流量的時(shí)候。把Apache和Nginx結(jié)合起來使用,也不失為一個(gè)不錯(cuò)選擇,如下:
LNAMP是Linux+Nginx+Apache+Mysql+PHP的組合方式,其特點(diǎn)是利用Nginx來作為靜態(tài)腳本的解析,而利用 Nginx的轉(zhuǎn)發(fā)特性,將動(dòng)態(tài)腳本的解析轉(zhuǎn)交給Apache來處理,這樣,能充分利用兩種Web服務(wù)器的特點(diǎn),對(duì)于訪問量需求較大的站點(diǎn)來說,是一個(gè)很不錯(cuò)的選擇。

LNAMP方式的優(yōu)點(diǎn):由于Apache本身處理PHP的能力比起php-fpm要強(qiáng),所以不容易出現(xiàn)類似502 bad gateway的錯(cuò)誤。適合訪問量較大的站點(diǎn)使用。

LNAMP方式的缺點(diǎn):相比LNMP方式會(huì)多占用一些資源,另外,配置虛擬主機(jī)需要同時(shí)修改Nginx和Apache的配置文件,要稍微麻煩一些。

Nginx/APACHE + tomcat + MySQL

Apacje/Nginx 和tomcat 整合在一起最常用的方法就是JK:

JK怎么連接tomcat?

  JK 是通過 AJP 協(xié)議與 Tomcat 服務(wù)器進(jìn)行通訊的,Tomcat 默認(rèn)的 AJP Connector 的端口是 8009。

Apacje/Nginx 和tomcat 最常用的方式用于:負(fù)載均衡以及方向代理。

負(fù)載均衡與反向代理通俗的解釋:

A為客戶端,B為nginx or apache,C,D為應(yīng)用服務(wù)器

負(fù)載均衡: 假設(shè)A沒有錢,那么A向B借錢,B本身是沒有錢的,B會(huì)向C,D借錢,然后在轉(zhuǎn)借給A,此時(shí)A是不知道C,D的存在的。

反向代理:假設(shè)A沒有錢,B也沒有錢,B就說,那么我推薦兩個(gè)人給你,你自己去向他們借錢吧,然后,B推薦了C,D,A此時(shí)認(rèn)識(shí)到了C和D,然后,C,D說,可以借給A,但是要通過B做擔(dān)保,所以,C,D通過B的擔(dān)保借錢給了A。

轉(zhuǎn)載地址:https://www.cnblogs.com/keep-going2099/articles/7048508.html

總結(jié)

以上是生活随笔為你收集整理的LAMP架构简述_IT架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。