1. 程式人生 > >httpd服務學習筆記

httpd服務學習筆記

llinux httpd

1,進程和線程

進程類似於一個大工程項目,線程相當於大工程項目的每個小的任務單元,進程比較耗資源,線程消耗的資源要少得多,一個進程中可能有一個或者多個線程,根據工作需要的程度。

2. 一個進程中的多個線程之間由於是共享資源,所以可能會互相影響,可以采用復用的多進程I/O進程。

3. 建立請求,處理請求(單進程,多進程,復用進程,多進程復用)

4. tomcatapaceh下的一個軟件,tomcat是一款開源的程序,通常用於動態頁面的制作。

MPM(多路處理模塊)工作模式

Pereork:一個進程響應一個用戶的請求,但是它有一個主進程,這個主進程可以生成多個子進程,最多1024個,每個子進程響應一個用戶的請求,相當於每一個子進程中只有一個線程

Worker:一個主進程生成若幹子進程,子進程又可以分為多個線程

Eventcentos6中是測試版,不可用,7以後可用。

Httpd功能特性

虛擬主機:可以根據ipportFQDN的不同,創建不同的網站

CGI(通用網關接口):支持應用程序開發的接口,例如httpd本身只支持靜態頁面,但是要想支持動態頁面,可以通過CGI使用php語言

正向代理:

技術分享

在叉出可以設置一個緩存區,這樣當1號用戶訪問過mage後,2號用戶再訪問mage就可以通過緩存區直接獲得,而不用浪費資源,再去互聯網上尋找了,同時也可以在代理服務器上設置acl等,指定策略等,來定義指定的用戶訪問指定的資源

反向代理:

技術分享

在某個時間段內,互聯網內的某個請求很大的時候,可以在反向代理服務器(調度器)這裏將所有此請求的請求都指定到一個專門的

web服務器上,這個被指定的web服務器只會處理這個請求量很大的請求,但是一般都不用apache作為反向代理服務器,市面上一般比較常見的是nigixhaproxylvs

路徑別名:將網站主頁指向一個別的地方,例如www.magedy.com/bbs訪問的是本機的bbs目錄

用戶認證機制:就是用戶名,密碼

支持第三方模塊:擴展apache的功能

Httpd-2.2

主配置文件格式(/etc/httpd/conf/httpd.conf),三大塊部分

第一部分:全局環境

第二部分:主服務配置

第三部分:虛擬主機

這三部分的順序對功能的實現沒有影響,分為三部分主要是為了看起來美觀。

Httpd-2.2配置

1)修改監聽的IPPort

可以實現監聽多個端口

技術分享

106只能通過9527訪問,106只能通過80訪問

技術分享

https(是加密的http),端口號是443http(端口號是80),是不一樣的

2)持久連接

技術分享

鏈接後,不操作的情況下等多久自動斷開連接

3)多路處理模塊MPM

如:啟用worker模塊

技術分享

技術分享

技術分享


Startservers 開啟的服務個數

Minspareservers 最小的空閑進程,預先準備5個空閑進程,也就是當用到第四個的時候,就會立馬增加新的5個進程,始終保證系統有5個空閑進程

Maxspareservers 最大的空閑進程,就是最多20個空閑的時候,就會被關掉

Serverlimit 最多256個,也就是並發連接數最多256個進程

Maxclients 最多多少個線程

Maxrequestsperchild 達到4000了,就自動關閉,開啟新的進程

技術分享

服務個數是4,但是ps -aux查看的時候只能看到三個,這是因為,一個進程可以開25個線程,也就是說服務一開就會有100個線程,但是由於最大空閑數是75所以,會自動關掉一個進程,也就變成三個了

4)加載動態模塊配置

主配置文件中,前面加#的模塊不會被啟用

技術分享

5)主站點

主頁面,可以更改,如

技術分享

如果兩行同時啟用,會使用下面的根文件目錄

創建網站目錄,就在html下創建子目錄就行

技術分享

指定默認網站目錄下訪問的默認頁面,也可以在訪問的時候指定訪問目錄

技術分享

6)站點訪問控制常見機制

技術分享

技術分享

/app/site1下的網頁不允許使用軟連接訪問,默認支持軟連接,不支持索引

Options none 全都不支持

Options all 全都支持

主站點的子目錄下想實現個性化的訪問控制,可以在下面繼續加

技術分享

7)orderdenyallow

技術分享

Only的時候,只看only

Bothnone的時候,看denyallow哪個在後面

8)針對url控制訪問

技術分享

Site1下的文件,confsh結尾的都文件拒絕訪問

技術分享

主站點下的admin目錄,只允許允許的主機訪問,其他的都拒絕

10)日誌的設定

錯誤日誌:默認的是warn,也就是馬上就要錯了就記錄日誌

技術分享

訪問日誌:

日誌格式

技術分享

技術分享

默認的日誌目錄,和格式,即combined ,%是間隔

%h 遠程主機地址

%l 遠程登陸的用戶的用戶名

%u 遠程用戶身份驗證

%t 用戶發起請求的時間,而且默認標準是英語國家的時間

%r 第一行的請求

%>s 最後的響應碼,每一個響應都有一個對應的一個號碼

%b 相應報文的文件大小

Referer 從哪個地址跳轉到這裏的

可以自己制定日誌格式,然後在/conf.d/name.conf文件中使用自己定義的日誌格式,如基於FQDN的虛擬主機的定義的.conf文件中,如下,testlog就是自己定義的日誌格式

技術分享

11)設定默認字符集,就是針對不同語言設計的不同的字符集,有些字符集不支持中文,有些全球通用,如utf-8

修改默認的字符集:

技術分享

12)定義路徑別名

技術分享

這樣訪問/bbs目錄的時候,會變成訪問/app/bbsdir下的文件,而且bbs這個目錄不管存在不存在,都不影響,它是個虛擬目錄

13)基於用戶的訪問控制

Basic基本驗證

針對目錄以及用戶的訪問控制,require 改為valid-user

用戶以及用戶的密碼文件可通過htpasswd -c/s/m 添加 c只在文件不存在時使用,sm代表不同的加密機制,shamd5

require-vaild,即為允許所有用戶訪問

技術分享

同時可以i將控制訪問的內容放到/secret/下的一個.htaccess文件下,這樣這個文件內的內容就會對secret的權限生效,另外,需要在/conf.d/test.conf文件中將allowoverride後加上 authconfig,即允許用驗證的權限通過 .htaaccess文件覆蓋。

13)基於組賬號進行認證

創建.htgroups文件,裏面定義組成員的信息,如下

技術分享

然後修改.htaaccess文件,類似用戶訪問控制的格式

技術分享

14)Status頁面,狀態頁面

技術分享

技術分享

這裏去掉#並修改配置後,可以訪問本機的狀態

虛擬主機(一個主機多個站點,一個站點代表一個虛擬主機)

通常對於訪問量不是很大的訪問,一個主機劃分多個虛擬主機進行訪問。

1)制作三個虛擬主機,建立三個站點的工作目錄

技術分享

2)添加三個ip地址

技術分享

3)三種實現方法

1. 為每個虛擬主機準備一個ip地址(基於ip

技術分享

訪問這些虛擬地址

技術分享

2. 為每個虛擬主機使用至少一個的端口(基於port

技術分享

通關端口訪問

技術分享

3. 為每個虛擬主機至少準備一個FQDN(基於FQDN

NamevirtualHost *80 是主配置文件裏的內容,如果不修改主配置文件,也可以寫在這裏,表示啟用基於FQDN的虛擬主機訪問

技術分享

另外,虛擬主機配置的位置決定了誰先被訪問,如圖website3在第一個,那麽就會放任website3,如下

技術分享

Cookie

cookie:記錄用戶的各種數據,用戶數量一旦太多,對服務器壓力就很大,這種cookie就不太合適了,而且用戶換了登陸主機後,無法加載cookie中的用戶的數據

cookie:只會記錄每個用戶的一個uid,並在後臺通過用戶的uid為其訪問其對應的數據,而且當用戶換了主機登陸後,依然可以加載出來用戶的數據

常見狀態碼

使用火狐瀏覽器可以方便的查看響應碼

技術分享

CURL命令(常用)

-A 設置用戶代理發送給服務器

技術分享

-e 選擇來源的網址

技術分享

日誌如下

技術分享 -H 自定義首部信息

技術分享

日誌如下

技術分享

-i 額外顯示頁面內容

-I 只顯示響應報文的首部信息

-Durlheader信息存放在在指定文件中

技術分享

-o

下載服務器中的文件,可以指定下載完後的文件名

-O

下載服務器中的文件,文件名默認和服務器上的一樣

下載的時候進行限速

技術分享

-L

進行真的跳轉,不加的話,只是顯示要跳轉的內容,但是不會真的跳轉

技術分享

Mod_deflate模塊實現

定義在/etc/httpd/conf.d/name.conf文件中,作用是通過壓縮傳輸的頁面,節約寬帶,減少額外消耗的cpu,但是有些老舊的瀏覽器可能不支持,而且只能壓縮適用於壓縮的數據

技術分享

Deflatecompressionlevel 默認是9,不寫這一行也是9,這裏寫的1,即11壓縮,也就是不壓縮

AddOutputFilterByType DEFLATE text/* 可以選擇需要壓縮的數據類型


本文出自 “11083860” 博客,請務必保留此出處http://11093860.blog.51cto.com/11083860/1974897

httpd服務學習筆記