Apache服務器之一理論講解(Apache)

前期做這個實驗的時候:

httpd:SELINUX(事先讓其處於DISABLED狀態)

getenforce

setenforce 0


編輯/etc/sysconfig/selinux


selinux的3種選擇:disabled permissive enforcing 3種選擇;


Disabled就不用說了,permissive就是selinux有效,但是即使你違反了策略的話它讓你繼續操作,但是把你違反的內容記錄下來。

在我們開發策略的時候非常的有用。



httpd在redhat系統上是受selinux控制的,一定要將selinux處於permissive,disabled狀態。


httpd.x86_64:服務包

httpd-devel.i386:這個是開發包,不做開發就用不到它;

httpd-manual.x86_64:本地的手冊頁;

只需要安裝httpd這個包即可。


httpd:SELINUX

/usr/sbin/httpd(MPM: prefork)  默認是prefork的;

httpd進程啓動起來之後,有好幾個進程。下面說下出現這幾個進程出現的原因:

httpd: root, root (master process) 主導進程

在linux系統上,小於1024的端口,只有管理員有權限啓動它。因此第一個進程是管理員啓動的。它不響應用戶請求,它用於創建空閒進程,或者銷燬進程。

httpd: apche, apache (worker process)工作進程

同時它也有自己的服務腳本:

/etc/rc.d/init.d/httpd

Port: (80/tcp), (https: 443/tcp)

編譯的話,任務軟件的安裝目錄在/etc/httpd這個目錄裏面;

/etc/httpd: 工作根目錄,相當於windows下程序安裝目錄

/etc/httpd/conf: 配置文件目錄

主配置文件:httpd.conf

主配置文件的組成分還包含有如下部分,使用文件引用將其引用進來即可:

/etc/httpd/conf.d/*.conf

/etc/httpd/modules: #模塊目錄路徑;

/etc/httpd/logs --> /var/log/httpd: #日誌文件目錄

日誌文件有兩類:訪問日誌access_log,錯誤日誌:err_log

/var/www/       #web服務器響應用戶請求的頁面路徑;

html        #apache提供靜態訪問時候的路徑;

cgi-bin #apache提供動態訪問時候的路徑;

cgi: Common Gateway Interface(通用網關接口)可以理解爲協議

作用:(讓web服務器能夠跟額外的應用程序通信的一種機制,能夠讓web服務器在必要的時候啓動一個應用程序,

來處理動態的請求)

Client --> httpd (index.cgi) --> Spawn(生成,產生)Process (index.cgi) --> httpd --> Client

到底什麼樣的程序語言能夠開發出動態的cgi:perl, python(默認情況下開發動態網頁非常實用), 

java,(Servlet, JSP), php(開發動態站點用的語言)。

每一種程序開發語言都有自己的適應場景;

爲了儘可能降低web服務器的壓力,web服務器無論你是否使用動態調用,讓我們的動態服務器進程也實現出現,

動態進程也像web服務器一樣也實現聲明好。也有一個自己的服務名字個服務的名字就叫fastcgi。這個時候這些動態進程的創建跟回收,

由自己的服務器完成,這叫做fastcgi。這也是cgi的一種。這個時候我們就可以將我們的服務器

分離開,靜態內容一個服務器。如果是動態請求,通過TCP/IP協議,請求我們的動態服務器即可。這個時候靜態內容跟動態內容就分開了。這就是爲什麼處理動態內容的

服務器被稱爲應用程序服務器的原因。這樣靜態服務器跟動態服務器分離了。

程序是由指令和數據組成的,指令是cpu上要運行的命令。程序最主要的是幫我們處理數據的。如果數據量非常大的話,怎麼去管理?早期是放在文檔中的,管理起來非常忙。

後期引入了數據管理機制,叫做數據庫服務器。這種程序能夠專門幫我管理數據,而且能夠通過某種接口,將這種數據服務提供給額外的其他應用程序,或者是用戶。這種接口

我們稱爲數據庫的API。應用程序服務器越來越忙了之後,我們不能主觀的將應用程序服務器分成兩個,因爲用戶訪問的數據沒法同步。這時候就需要再次進行分層。如果要訪問

動態數據,首先訪問web服務器,web服務器再訪問應用程序服務器,應用程序服務器,應用程序服務器訪問數據庫服務器,應用程序服務器,完成數據的轉換,

將其轉換爲html文檔,再返回給web服務器,web服務器再將其返回給客戶。

前端我使用apache服務器,中間我使用php服務器,後端我使用mysql服務器。這就叫做lamp。

所以之後的所有內容全是圍繞web服務器展開的。那我們後期就可以使用hadoop集羣並行處理這些信息。這些服務器如何協同,如何鏈接。

fastcgi:外部服務器與cgi通信的機制,我們起名叫fastcgi。有了它之後,動態進程就會有專門的進程生成。

程序:指令和數據

數據,數據庫服務

下面先針對httpd的靜態頁面進行配置,有哪些方式,如何進行調整等。

以後日誌主線:如何搭建單個httpd服務器,如何搭建php,如何搭建mysql。如何將httpd與php結合起來。如何將mysql域httpd,php,關聯起來。如何在一臺服務器上搭建

lamp,如何將其拆開如何在三臺服務器上搭建,lamp。如何再將其進行擴展,擴展成lamp的集羣形式。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章