天天看點

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的靜态頁面進行配置,有哪些方式,如何進行調整等。