EBB-26、web服務Apache

一、Web服務概述

1、什麼是WEB服務

Web服務是Internet中最爲重要的應用

Web服務是一種服務導向架構的技術,通過標準的Web協議提供服務,目的是保證不同平臺的應用服務可以互操作。

根據W3C的定義,Web服務(Web service)應當是一個軟件系統,用以支持網絡間不同機器的互動操作。網絡服務通常是許多應用程序接口API)所組成的,它們透過網絡,例如國際互聯網(Internet)的遠程服務器端,執行客戶所提交服務的請求。

2、Web服務採用客戶端/服務器模型

客戶端爲瀏覽器,它提供了良好、統一的用戶界面。瀏覽器的作用爲解釋和顯示Web頁面,響應用戶的輸入請求,並通過HTTP協議將用戶請求傳遞給Web服務器

渲染引擎是瀏覽器重要的組成部分。

3、Web服務器運行服務器程序,最基本的功能是偵聽和響應客戶端的HTTP請求,向客戶端發出請求處理結果信息

4、HTTP協議的默認端口爲80


二、HTTP協議操作過程

clip_image002

如果在請求中沒有明確的說明請求的文件,默認請求的是/index.html文件。默認應答的頁面即請求根目錄的index.html文件。

如 http://www.e-bai.com/index.html

用戶的請求包括domain(域)和path(路徑)兩部分:

www.e-bai.com表示domain部分;

/index.html稱爲path部分,根目錄下的html文件。

三、Apache服務器

1、Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源代碼的網頁服務器,可以在大多數電腦操作系統中運行,由於其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠並且可通過簡單的API擴充,將PerlPython解釋器編譯到服務器中。

Apache服務器支持相應的模塊化功能

兼容性強,支持多種平臺

2、Apache項目有Apache軟件基金會(ASF)負責管理和開發

3、安裝apache

生產中較少使用源代碼安裝軟件,一般採用rpm包管理器安裝

yum install httpd

進入RHEL安裝光盤安裝

rpm -ivh http-xxx.rpm

httpd-2.2.3-43.el5.i386.rpm apache主程序包

httpd-manual-2.2.3-43.el5.i386.rpm httpd手冊

httpd-devel-2.2.3-43.el5.i386.rpm 相應的apach庫文件


4、主要組成部分

rpm -ql httpd查看httpd包安裝的文件

(1)相應配置文件目錄/etc/httpd/,

clip_image004

主配置文件:/etc/httpd/conf/httpd.conf

clip_image006

分三個組成部分:

Section 1: Global Environment 全局配置

ServerRoot "/etc/httpd" 指定當前apache服務器運

行之後的chroot目錄是

/etc/httpd目錄;

PidFile run/httpd.pid 指定apche的進程編號保

存位置。

該位置表示的是相對路徑,

絕對路徑爲/etc/httpd/run/httpd.pid

Timeout 120 超時時間,如果用戶連接120秒後仍然

連接不上,就直接回復連接超時了

KeepAlive Off 和TCP/IP協議中關於TCP協議的

keepalive不同;

保活連接Apche自身的實現。

默認off關閉。

如果改成on之後,下面的配置將生效

建議設置爲on,同時根據網站情況合

理分配下面兩個參數的數值。

MaxKeepAliveRequests 100 最大的保活連接嘗試次

數。100次之後確認對方

已掛掉

KeepAliveTimeout 15 用戶如果15秒之內沒有發送任

何相應的數據包,服務器將發送

一次保活連接測試。

Server-Pool Size Regulation (MPM specific)

MPM配置。

當前Apache有兩種運行的模式:

進程(prefork)和線程(worker)模式。

運行於進程模式的Apache服務器,處理請求速

度更快;但是開啓的進程數受到一定限制;處

理大併發量進程的請求時不如線程模式;

進程模式性能好,但承載量少

線程模式由於共享進程內存,所以可以開啓非

常多的線程。大大超過進程的數量,處理大並

髮量的進程訪問時性能比進程模式好;但是由

於線程模式是競爭進程內存的,所以效率沒有

進程模式高。

線程模式性能稍差,承載量多

clip_image008

如果Apache服務運行於(prefork)進程模式,則

該段配置生效.當前apache服務器默認運行在

prefork模式。

StartServers 8 默認啓動多少個進程來爲用戶提供服務。

默認爲8

MinSpareServers 5 最小的空閒進程數量

MaxSpareServers 20 最大的空閒進程數量

ServerLimit 256 當前進程開啓的最大數量,如果需要超過

256,需要改寫源代碼或者使用MAxClients

參數

MaxClients 256

MaxRequestsPerChild 4000 每個子進程可以處理4000個請求

clip_image010

線程模式

StartServers 2 啓動2個進程

MaxClients 150 最多開啓150個線程

MinSpareThreads 25 最小進程閒置數量

MaxSpareThreads 75 最大線程閒置數量

ThreadsPerChild 25 每個進程開啓25個線程

MaxRequestsPerChild 0 每個子進程處理相應請求的數量。默認0

不做限制

clip_image012 如果有多個IP地址,指向指定某一個IP地址

的端口;

如果指定所有網卡的端口都監聽,直接寫Listen 80就可以了。

也可以重新設置Apache的默認端口。

Dynamic Shared Object 動態加載增加或縮減功能

語法格式:

LoadModule auth_basic_module modules/mod_auth_basic.so

LoadModule 模塊名稱/模塊位置(路徑以相對路徑書寫)

實際路徑爲/etc/httpd/module下的相應的.so文件

clip_image014

Include conf.d/*.conf 包含 conf.d/目錄下所有的.conf結尾的

文件

clip_image016

包含各種子配置文件

clip_image018

分別設置以哪個用戶、哪個組的身份運行Apache服務器

clip_image020

注意:由於監聽的是80端口屬於知名端口(小於1024),知名端口必須有root用戶來綁定。所以首先使用root身份運行Apache服務,;然後在進程中fork出其他子進程,fork出的子進程用Apache身份來運行。root運行的進程只監聽端口,將接收到請求轉交給其他子進程。

Section 2: 'Main' server configuration

主服務的配置文件即默認的主網站的各項參數配置

ServerAdmin root@localhost 該網站的管理員的email地址

ServerName www.example.com:80 當前服務器主機的域名。

不是本機的DNS主機名

DocumentRoot "/var/www/html" 網站的主目錄位置

clip_image022設置目錄的屬性

clip_image024

Options 後跟的內容包括Indexes(單獨設定目錄的默認主頁文件的名稱,一般是idexes/html文件)、Includes(包含其他目錄屬性)、 FollowSymLinks(創建軟鏈接)、 SymLinksifOwnerMatch、ExecCGI、 MultiViews(支持多類型的頁面)

ALL除了Multiviews之外的其他所有功能

默認是clip_image026

自定義首頁文件和創建軟鏈接

AllowOverride None 允許覆蓋。控制.htaccess功能的開關以及

開啓什麼功能。

none表示關閉該功能。

.htaccess文件可以寫入的配置

Options(屬性配置信息)、 FileInfo(文件細節控制)、

AuthConfig(認證配置)、Limit(使用量的配置)

all表示以上全部功能

.htaccess文件不需要重啓服務器立即生效。但會增加服務器

的負擔。一般在多用戶所使用服務器的時候開啓。

clip_image028

控制當前目錄的訪問。

clip_image030

usr dir 模塊開啓後,當前的服務器每一個普通用戶都

可以在家目錄中創建一個public_html 的目錄。該目

錄下可以放置一些頁面文件。

用戶通過訪問服務器的域名地址/~user,就可以訪問到

該目錄的網頁。

默認關閉

DirectoryIndex index.html index.html.var

這項功能必須是在clip_image026[1]

配置後才能使用

clip_image032 .htaccess文件的設置

~代表是後面的名稱是用正則表達式書寫的

^表示以什麼爲開頭;\轉譯符;

表示.ht爲開頭的文件任何人不能訪問。只能被服務器

讀取,不會被普通用戶讀取到。增強安全性。

clip_image034

類型配置。

mime:多用途互聯網郵件擴展(MIME,Multipurpose Internet Mail Extensions)是一個互聯網標準,它擴展了電子郵件標準,使其能夠支持非ASCII字符、二進制格式附件等多種格式的郵件消息。這個標準被定義在RFC 2045RFC 2046RFC 2047RFC 2048RFC 2049RFC中。 由RFC 822轉變而來的RFC 2822,規定電子郵件標準並不允許在郵件消息中使用7位ASCII字符集以外的字符。正因如此,一些非英語字符消息和二進制文件,圖像,聲音等非文字消息都不能在電子郵件中傳輸。MIME規定了用於表示各種各樣的數據類型的符號化方法。 此外,在萬維網中使用的HTTP協議中也使用了MIME的框架。

/etc/httpd/conf/magic文件是mime文件的補充。

DefaultType text/plain或application/octet-stream

訪問的文件服務器無法識別的時候,

默認text/plain是以文本格式顯示在頁面中;

clip_image036

clip_image038

service httpd restart重啓服務

clip_image040

application/octet-stream 下載到本機;推薦使用

clip_image042

service httpd restart重啓服務

首先瀏覽器的緩存,再次訪問

clip_image044

clip_image046

hostnamelookups Apache服務器是否打開DNS查詢的功能。

默認是off。如果打開,每個訪問網站的用,apache都會執行一次反向解析得知來源IP地址的想ing域名並且保存到日誌。

消耗服務器的性能。

ErrorLog logs/error_log 指定當前網站的錯誤日誌目錄。

實際路徑是

/var/log/httpd/error_log

LogLevel warn 記錄什麼級別的日誌。表示記錄warn以上級別的日

志。

clip_image048

LogFormat 日誌格式。表示的是用戶訪問的日誌格式。

clip_image050

Alias /var/www/icons/ alias別名。用戶在url下訪問/icons/

表示訪問的實際路徑是

/var/www/icons/。

clip_image052

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" scriptAlias別名。

AddType text/html .shtml

AddOutputFilter INCLUDES .shtml 如果mime中沒有的格式可以在

此添加

ErrorDocument語句 用來指定報錯頁面內容

clip_image054

設置進程模式或者線程模式啓動使用/etc/sysconfig/httpd文件

clip_image056

HTTPD=/usr/sbin/httpd.worker 如果去掉註釋,apache服務重啓

後會使用線程模式;但是線程模式

會與某些模塊發生不兼容,例如

PHP。

服務器的根目錄(ServerRoot):/etc/httpd

根文檔目錄(DocumentRoot):/var/www/html

訪問日誌文件:/etc/httpd/logs/access_log

錯誤日誌文件:/etc/httpd/logs/error_log

模塊存放路徑:/etc/httpd/modules

實驗

一、配置基於IP的虛擬主機

1、添加一個IP地址

ifconfig eth0:0 192.168.1.200 netmask 255.255.255.0

clip_image058

2、編輯配置文件

vi /etc/http/conf/http.conf

複製該段

clip_image060

編輯如下

<VirtualHost 192.168.1.150>

指定192.168.1.150監聽,由於當前默認監聽的

是80端口,所以這裏我們可以省略。

ServerAdmin 網站的管理員

DocumentRoot 當前網站的主目錄

ServerName 網站的名稱

ErrorLog 錯誤日誌文件;

CustomLog 用戶訪問日誌

最終配置如圖:

clip_image062

3、創建配置文件目錄

clip_image064

4、重啓服務

clip_image066

5、chkconfig httpd on設置開機啓動

clip_image068

6、測試

訪問192.168.1.150,回覆如下:

clip_image070

訪問1,92.168.1.200,回覆是:

clip_image072

由於IP地址越來越稀缺,所以這種方式已經較少適用。

二、配置基於端口的虛擬主機

1、

編輯配置文件.訪問80端口回覆a.com;80:80端口回覆b.com。

vim /etc/httpd/conf/httpd.conf

添加監聽端口8080

clip_image074

虛擬主機的配置爲

clip_image076

2、重啓服務

clip_image078

3、測試

80端口是默認訪問的,直接訪問結果不變

clip_image080

訪問192.168.1.150:8080端口,得到的結果是

this is b.com

clip_image082

三、配置基於名稱的虛擬主機

1、編輯配置文件

vim /etc/httpd/conf/httpd.conf

1)首先打開clip_image084,表示打開哪一個IP地址的

哪個端口的基於名稱的虛擬主機的功能。

默認是*:80,表示服務器所有IP地址的80端口都打開此

功能。

注意:一定要先打開,只有打開後Apache服務器纔會支持

分辨用戶請求的主機頭的部分的內容。

2)配置如圖

clip_image086

2、爲了讓當前訪問不再輸入IP地址,而是直接輸入主機名。我們修

改一下/etc/hosts文件

vi /etc/hosts

clip_image088

3、重啓服務

clip_image090

4、測試

輸入www.a.com

clip_image092

輸入www.b.com

clip_image094

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