Web網(wǎng)站服務(wù)-Apache

一、概述

二、編譯安裝

三、httpd服務(wù)基礎(chǔ)

四、httpd.conf配置文件

五、httpd服務(wù)訪問(wèn)控制

六、虛擬Web主機(jī)


一、概述


主要特點(diǎn)

Apache是世界使用排名第一的Web服務(wù)器軟件。它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺(tái)上,由于其跨平臺(tái)和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一。

開(kāi)放源代碼、跨平臺(tái)應(yīng)用

支持多種網(wǎng)頁(yè)編程語(yǔ)言

模塊化設(shè)計(jì) 、運(yùn)行穩(wěn)定、良好的安全性

二、編譯安裝


編譯安裝的優(yōu)點(diǎn)

具有較大的自由度,功能可定制

可及時(shí)獲得最新的軟件版本

普遍適用于大多數(shù)Linux版本,便于移植使用

獲得Apache服務(wù)器的源碼包

參考地址:http://httpd.apache.org/download.cgi

安裝httpd服務(wù)器

1.準(zhǔn)備工作

卸載httpd及相關(guān)依賴包

[root@www ~]# rpm -e httpd httpd-manual webalizer subversion mod_python mod_ssl mod_perl system-config-httpd php php-cli php-ldap php-common mysql dovecot --nodeps? //忽略軟件包依賴性

2.源碼編譯及安裝

[root@www ~]# tar zxf httpd-2.2.17.tar.gz -C /usr/src/? ? ? //解包

[root@www ~]# cd /usr/src/httpd-2.2.17/

[root@www httpd-2.2.17]# ./configure? --prefix=/usr/local/httpd? --enable-so? --enable-rewrite? --enable-charset-lite? --enable-cgi? //配置

[root@www httpd-2.2.17]# make

[root@www httpd-2.2.17]# make install? ? //編譯及安裝

3.確認(rèn)安裝結(jié)果

[root@www ~]# ls /usr/local/httpd/

bin? ? cgi-bin? error? icons? ? lib? man? ? modules

build? conf? ? htdocs? include? logs? manual

4.優(yōu)化執(zhí)行路徑

[root@www ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

[root@www ~]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl

lrwxrwxrwx 1 root root 30 04-06 13:08 /usr/local/bin/apachectl ->? /usr/local/httpd/bin/apachectl

lrwxrwxrwx 1 root root 26 04-06 13:08 /usr/local/bin/httpd -> /usr/local/httpd/bin/httpd

5.添加httpd系統(tǒng)服務(wù)

以便通過(guò)chkconfig進(jìn)行管理

[root@www ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

[root@www ~]# vi /etc/init.d/httpd

#!/bin/bash

# chkconfig: 35 85 15

# description: Startup script for the Apache HTTP Server

……

[root@www ~]# chkconfig --add httpd

[root@www ~]# chkconfig --list httpd

httpd? ? ? ? ? 0:關(guān)閉? 1:關(guān)閉? 2:關(guān)閉? 3:啟用? 4:關(guān)閉? 5:啟用? 6:關(guān)閉

三、httpd服務(wù)基礎(chǔ)


1、主要目錄和文件:

服務(wù)目錄:/usr/local/httpd/

主配置文件:/usr/local/httpd/conf/httpd.conf

網(wǎng)頁(yè)目錄:/usr/local/httpd/htdocs/

服務(wù)腳本:/usr/local/httpd/bin/apachectl

執(zhí)行程序:/usr/local/httpd/bin/httpd

訪問(wèn)日志: /usr/local/httpd/log/access_log

錯(cuò)誤日志: /usr/local/httpd/log/error_log

Httpd的安裝目錄是由前面的—prefix指定的路徑,默認(rèn)安裝在/usr/local/apache2目錄下

2、Web站點(diǎn)部署過(guò)程

1.確定網(wǎng)站名稱、IP地址

ifconfig、hostname

2.配置并啟動(dòng)httpd服務(wù)

[root@www ~]# vi /usr/local/httpd/conf/httpd.conf

……

ServerName www.benet.com

……

[root@www ~]# /usr/local/httpd/bin/apachectl -t

Syntax OK

[root@www ~]# /etc/init.d/httpd start

3.部署網(wǎng)頁(yè)文檔

[root@www ~]# cat /usr/local/httpd/htdocs/index.html

It works!

4.在客戶機(jī)中訪問(wèn)Web站點(diǎn)

圖一

5.查看Web站點(diǎn)的訪問(wèn)情況

[root@www ~]# tail /usr/local/httpd/logs/access_log

192.168.4.110 - - [06/Apr/2011:14:24:06 +0800] "GET / HTTP/1.1" 200 44

192.168.4.110 - - [06/Apr/2011:14:24:06 +0800] "GET /favicon.ico HTTP/1.1" 404 209

四、httpd.conf配置文件


常用的全局配置參數(shù)

ServerRoot:服務(wù)目錄

ServerAdmin:管理員郵箱

User:運(yùn)行服務(wù)的用戶身份

Group:運(yùn)行服務(wù)的組身份

ServerName:網(wǎng)站服務(wù)器的域名

DocumentRoot:網(wǎng)頁(yè)文檔的根目錄

Listen:監(jiān)聽(tīng)的IP地址、端口號(hào)

PidFile:保存httpd進(jìn)程PID號(hào)的文件

DirectoryIndex:默認(rèn)的索引頁(yè)文件

CustomLog:訪問(wèn)日志文件的位置

LogLevel:記錄日志的級(jí)別,默認(rèn)為warn

Timeout:網(wǎng)絡(luò)連接超時(shí),默認(rèn)為300秒

KeepAlive:是否保持連接,可選On或Off

MaxKeepAliveRequests:每次連接最多請(qǐng)求文件數(shù)

KeepAliveTimeout:保持連接狀態(tài)時(shí)的超時(shí)時(shí)間

Include:需要包含進(jìn)來(lái)的其他配置文件

區(qū)域配置項(xiàng)

<Directory />

? ? OptionsFollowSymLinks? //控制選項(xiàng),允許使用符號(hào)鏈接

? ? AllowOverrideNone? //不允許隱含控制文件中的覆蓋配置

? ? Orderdeny,allow? //訪問(wèn)控制策略的應(yīng)用順序

? ? Deny from all? //禁止任何人訪問(wèn)此區(qū)域

</Directory>

五、httpd服務(wù)訪問(wèn)控制


httpd服務(wù)的訪問(wèn)控制

作用:

控制對(duì)網(wǎng)站資源的訪問(wèn)

為特定的網(wǎng)站目錄添加訪問(wèn)授權(quán)

常用訪問(wèn)控制方式:

客戶機(jī)地址限制

用戶授權(quán)限制

Order配置項(xiàng),定義控制順序

先允許后拒絕,默認(rèn)拒絕所有:Order allow,deny

先拒絕后允許,默認(rèn)允許所有:Order deny,allow

Allow、Deny配置項(xiàng),設(shè)置允許或拒絕的地址

Deny from address1 address2 …

Allow from address1 address2 …

<Directory "/usr/local/awstats/wwwroot">

……

Order deny,allow

deny from 192.168.0.0/24 192.168.1.0/24

</Directory>

用戶授權(quán)限制

1.創(chuàng)建用戶認(rèn)證數(shù)據(jù)庫(kù)

[root@www ~]# cd /usr/local/httpd/

[root@www httpd]# bin/htpasswd -c/usr/local/httpd/conf/.awspwd webadmin //新建密碼文件

New password:

Re-type new password:

Adding password for user webadmin

[root@www httpd]# cat /usr/local/httpd/conf/.awspwd? //確認(rèn)用戶數(shù)據(jù)庫(kù)文件

webadmin:2tmD3LVFynBAE

2.添加用戶授權(quán)配置

[root@www ~]# vi /usr/local/httpd/conf/httpd.conf…………

……

<Directory "/usr/local/awstats/wwwroot">

……

AuthName "AWStats Directory"? //受保護(hù)的領(lǐng)域名稱

AuthType Basic? //設(shè)置認(rèn)證的類型

AuthUserFile /usr/local/httpd/conf/.awspwd ?//用戶認(rèn)證賬號(hào)文件

require valid-user

</Directory>? //要求通過(guò)認(rèn)證才能訪問(wèn)

[root@www ~]# /usr/local/httpd/bin/apachectl restart

3.驗(yàn)證用戶訪問(wèn)授權(quán)


六、虛擬Web主機(jī)


在同一臺(tái)服務(wù)器中運(yùn)行多個(gè)Web站點(diǎn),其中每一個(gè)站點(diǎn)并不獨(dú)立占用一臺(tái)真正的計(jì)算機(jī)

httpd支持的虛擬主機(jī)類型

基于域名的虛擬主機(jī)

基于IP地址的虛擬主機(jī)

基于端口的虛擬主機(jī)


構(gòu)建虛擬主機(jī)——基于域名

應(yīng)用示例:

構(gòu)建2個(gè)虛擬Web站點(diǎn):

www.benet.com,IP地址為 173.17.17.11

www.accp.com,IP地址為 173.17.17.11

在瀏覽器中訪問(wèn)這兩個(gè)域名時(shí),分別顯示不同的內(nèi)容

1.為虛擬主機(jī)提供域名解析

[root@dnssvr ~]# vi /var/named/chroot/var/named/benet.com.zone

……

@? ? ? IN? ? ? NS? ? ? dnssvr.benet.com.

dnssvr? IN? ? ? A? ? ? 173.17.17.2

www? ? IN? ? ? A? ? ? 173.17.17.11

[root@dnssvr ~]# vi /var/named/chroot/var/named/accp.com.zone

……

@? ? ? IN? ? ? NS? ? ? dnssvr.benet.com.

www? ? IN? ? ? A? ? ? 173.17.17.11

2.為虛擬主機(jī)準(zhǔn)備網(wǎng)頁(yè)文檔

[root@www ~]# mkdir /var/www/html/benetcom[root@www ~]# mkdir /var/www/html/accpcom[root@www ~]# echo "

www.benet.com

" > /var/www/html/benetcom/index.html[root@www ~]# echo "

www.accp.com

" > /var/www/html/accpcom/index.html

3.添加虛擬主機(jī)配置

root@www ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf //創(chuàng)建獨(dú)立的配置文件

<Directory "/var/www/html“>? //設(shè)置目錄訪問(wèn)權(quán)限

? ?Order allow,deny

? ?Allow from all

</Directory>

NameVirtualHost 173.17.17.11

<VirtualHost 173.17.17.11>? //設(shè)置benet虛擬站點(diǎn)

? ?DocumentRoot/var/www/html/benetcom

? ?ServerName www.benet.com?

? ?ErrorLog? logs/www.benet.com.error_log

? ?CustomLog logs/www.benet.com.access_log common

</VirtualHost>

<VirtualHost 173.17.17.11> //設(shè)置accp虛擬站點(diǎn)

DocumentRoot /var/www/html/accpcom

ServerName www.accp.com

ErrorLog? logs/www.accp.com.error_log

CustomLog logs/www.accp.com.access_log common

</VirtualHost>

[root@www ~]# vi /usr/local/httpd/conf/httpd.conf //加載獨(dú)立的配置文件

……

Include conf/extra/httpd-vhosts.conf

[root@www ~]# /usr/local/httpd/bin/apachectl restart

4.構(gòu)建虛擬主機(jī)——基于IP

應(yīng)用示例:

構(gòu)建2個(gè)虛擬Web站點(diǎn):

www.bdqn.cn,IP地址為 220.181.120.61

www.jbit.cn,IP地址為 122.115.32.133

在瀏覽器中訪問(wèn)這兩個(gè)IP時(shí),分別顯示不同的內(nèi)容

<VirtualHost 220.181.120.61>

DocumentRoot /var/www/html/bdqncn

ServerName www.bdqn.cn

……

</VirtualHost>

<VirtualHost 122.115.32.133>

DocumentRoot /var/www/html/jbitcn

ServerName www.jbit.cn

……

</VirtualHost>

5、構(gòu)建虛擬主機(jī)——基于端口

應(yīng)用示例:

構(gòu)建2個(gè)虛擬Web站點(diǎn):

www.benet.com,IP地址、端口為 173.17.17.11:80

www.accp.com,IP地址、端口為 173.17.17.11:8353

在瀏覽器中訪問(wèn)這兩個(gè)端口時(shí),分別顯示不同的內(nèi)容

<VirtualHost 173.17.17.11:80>

DocumentRoot /var/www/html/accpcom

ServerName www.accp.com

……

</VirtualHost>

[root@www ~]# vi /usr/local/httpd/conf/httpd.conf

……

Include conf/extra/httpd-vhosts.conf

Listen 173.17.17.11:80

Listen 173.17.17.11:8353

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容