一、安裝httpd服務器
1.編輯安裝
在配置Apache Web服務器之前,需要正確安裝好httpd服務器軟件。
1). 獲取軟件包
2). 解壓並釋放源碼包
3). 配置編譯選項
在配置前可以先執行“./configure –help”命令查看各種配置項的詳細信息,以便實現更靈活,更豐富的功能定制配置。
--prefix用於指定httpd服務程序將要安裝到的系統目錄,這裡設置的是缺省目錄“/usr/local/apache2”;
--enable-so用於能夠使httpd服務動態加載模塊的功能;
--enable-rewrite用於能夠使httpd服務具有rewrite網頁地址重寫功能。
4).編譯服務器程序
需要執行“make”命令進行編譯,將源代碼轉換為可執行的程序。
5).安裝已編譯完成的程序
執行“make install”命令完成最後的安裝過程,將已經編譯完的httpd程序及相關目錄、文件復制到預設的安裝目錄中。
二、httpd服務基礎
1.web服務器基本構建
1).修改主配置文件httpd.conf
用vi編輯器打開httpd.conf主配置文件,添加設置web服務器域名的配置行。需要用到的配置項為“ServerName”
[root@www ~]# vi /usr/local/apache2/conf/httpd.conf
ServerName www.qq.com
使用ServerName設置主機域名,應在該域的授權DNS服務器中設置有對應的A記錄,以便所有的主機都可以通過該域來訪問這
台WEB服務器
2).檢查httpd.ocnf文件的語法設置
使用帶“-t”選項的apachetl命令對配置內容進行語法檢查(也可發使用“httpd –t”命令)。如果沒有語法錯誤,將會
顯示“syntax OK”的信息。
[root@www conf]# /usr/local/apache2/bin/apachectl –t
Syntax OK
3).啟動、終止及重啟httpd服務
使用帶“start”選項的apachectl命令可發啟動htttpd服務。
[root@www ~]# /usr/local/apache2/bin/apachectl start
[root@www ~]# netstat -anpt | grep :80
tcp 0 0 :::80 :::* LISTEN 21669/httpd
若希望在服務器開機後自動運行httpd服務,可以將對應的啟動命令寫入到“/etc/rc.d/local”文件中。
2.httpd.conf配置文件
本文URL地址:http://www.bianceng.cn/OS/Linux/201410/45503.htm
Httpd.conf文件是httpd服務的主配置文件,其中包含的配置項直接決定著Web服務器的各項運行參數及服務器性能。
1). httpd.conf配置文件
由注釋行和設置行兩部分組成,注釋行以“#”開始,設置行不以“#”開始,是配置文件中真正有效的設置內容。
命令去除掉注釋行。
[root@www ~]# cd /usr/local/apache2/conf/
[root@www conf]# cp httpd.conf httpd.conf.bak
[root@www conf]# grep -v '#' httpd.conf.bak | grep -v '^$' > httpd.conf
2). httpd.conf中的全局配置、
httpd.conf配置文件中包括有相當數量的全局配置項,這些配置項不包括在任何區域中,決定了Apache服務器的全局參數。
以下是httpd.conf文件中常用到的全局配置項內容及注解。
ServerRoot "/usr/local/apache2" //用於設置httpd服務器的根目錄
Listen 80 //用於設置監聽的端口號
User daemon //用於設置運行htttpd進程時的用戶身份
Group daemon //用於設置運行htttpd進程時的組身份
ServerAdmin [email protected] //用於設置管理員的E-mail地址
ServerName www.qq.com //用於設置FQDN
DocumentRoot "/usr/local/apache2/htdocs" //用於設置網頁文檔根目錄
DirectoryIndex index.html index.php //用於設置網站的默認首頁
ErrorLog "logs/error_log" //用於設置錯誤日志文件的路徑和文件名
LogLevel warn //用於設置記錄的級別,默認為Warn(警告)
CustomLog logs/access_log common //用於設置訪問日志文件的路徑和格式類型
PidFile logs/httpd.pid //用於設置保存httpd服務器程序進和號(PID)文件
Timeout 300 //用於設置服務器與浏覽器之間網絡連接的超時時間
KeepAlive On //用於設置是否使用保持連接功能
MaxKeepAliveRequests 100 //用於設置客戶端每次連接允許請求響應的最大文件數
KeepAliveTimeout 15 //用於設置保持連接的超時秒數
Include conf/extra/httpd-vhosts.conf //用於包含另一個配置文件的內容
… …
3). httpd.conf中的區域設置
除了全局設置項外,htttpd.conf文件中的在多數配置都是包括在區域中的,區域設置使用一對組合標記,限定了配置項的
作用范圍,例如,配置文件中常用的目錄區域的形式如下:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
在以上的區域定義中,使用<Directory />定義區域的開始,使用</Directory>定義該區域的結束,其間的設置內容只作用
於區域內部,而不會在全局或其它區域中生效。目錄區域設置主要用於為特定的目錄,設置訪問控制權限。除了目錄區域外,經常會
設置如“<VirtualHost>… …</VirtualHost>”這樣的虛擬主機等的區域。
4).httpd服務的日志
httpd服務器包括訪問日志和錯誤日志兩個常用的日志文件,通過查看日志文件可以了解Apache服務器運行情況,也可以排
錯
查看日志文件
[root@www ~]#tail -2 /usr/local/apache2/logs/access_log
三、Web站點的典型應用
1.測試httpd服務器的性能
Httpd服務自帶了一個壓力測試工具AB,用於檢測Web站點的性能表現,AB命令工具位於安裝目錄中的“bin/”文件夾下
Ab [-q] –c 並發請求數 –n 總的請求數 [http://] 域名 [:端口]/路徑
使用-q選項時,將不顯示測試進度信息,當測試的目標是Web站點的根路徑時,注意最後的“/”符號不能省略。指定的並發
請求數不能大於總的請求數。
1).使用ulimit命令修改最大文件數限制
Ulimt是一個Bash內部的命令,可以用於對Shell進程使用的系統資源進行限制。
修改最大文件數為100000
[root@www ~]#ulimit -a | grep "open files"
open files
[root@www ~]#ulimit -n 100000
[root@www ~]#ulimit -a | grep "open files"
open files (-n) 100000
2).使用AB命令進行壓力測試
執行AB測試命令後,通過命令輸出的結果判斷Web服務器的響應情況及性能表現
[root@www ~]# /usr/local/apache2/bin/ab -q -c 2000 -n 4000 http://www.qq.com/
....
二.構建虛擬WEB主機
虛擬Web主機指的是在同一台服務器中運行多個Web站點的應用,其中的每一個站點並不獨立占用一台真正的計算機。
三種虛擬主機類型:
基於域名的虛擬主機:為每個虛擬主機使用不同的域名,但是其對應的IP地址也不相同
基於IP地址的虛擬主機:使用不同的域名,對應不同的IP
基於端口的虛擬主機:不適用域名、IP地址來區分,而是用不同的TCP端口號
1. 構建基於域名的虛擬主機
1).確定服務器的主機名、IP地址等參數。
2).分別准備兩個虛擬站點的網頁文件
3).修改httpd.conf文件,添加虛擬主機配置
本文URL地址:http://www.bianceng.cn/OS/Linux/201410/45503.htm
編輯httpd.conf文件,使用“Name VirtualHost”配置項指定運行虛擬主機的服務器IP地址,並為每一個虛擬站點增加一
段“<VirtualHost虛擬主機IP地址>… …</VirtualHost>”區域設置,其中至少包括虛擬主機的域名、網頁文檔根目錄的配置行,其
他的設置內容可發參考httpd.conf文件中的全局配置。如果虛擬主機數較多,建議為每一個虛擬主機使用獨立的訪問日志和錯誤日志
文件。
4).重新啟動httpd服務
5)在客戶機浏覽器中訪問虛擬Web站點
首先要確保客戶機能夠正確解析這兩個虛擬主機的域名,並能夠連接到該服務器,如果在實驗中沒有搭建可用的DNS服務器,
也可通過修該客戶機的hosts文件來完成域名解析——如果是Linux客戶機,則修改“/etc/hosts”文件;如果是windows客戶機,則
修改“C:\WINDOWS\system32\drivers\hosts”文件,添加相應域名到IP地址的映射記錄即可。
在客戶端浏覽器中分別訪問兩個虛擬主機站點www.zou.com、www.pan.com,將會看到不同的網頁內容
浏覽網站www.zou.com所看到的效果:
2. 構建基於IP地址的虛擬主機
構建基於IP地址的虛擬主機服務器時,與構建基於域名虛擬主機的過程基本類似。只不過中httpd.conf文件中的配置稍微有
些區別:不再需要指明“NameVirtualHost”配置行,每個虛擬主機的“<VirtualHost虛擬主機IP地址>… …</VirtualHost>”區域
設置中,也要改為各自域名對應的IP地址。
3. 構建基於端口的虛擬主機
構建基於端口的虛擬主機服務器時,httpd服務監聽的IP地址、端口號需要與各虛擬主機使用的IP地址、端口號相對應,一
般也無需指定“NameVirtualHost”配置行。
三. 建立系統用戶的個人主頁
Httpd服務自帶的個為主頁功能,為Linux系統用戶提供Web站點服務。
1. 修改httpd文件,啟用個人主頁功能
添加“UserDir public_html”配置行,並添加“<Directory“/home/*/public_html”>… …</Directory>”目錄區域
設置,以便允許客戶機訪問系統用戶的個人網頁目錄。
2. 建立個人主頁測試文件
切換為目標用戶,在宿主目錄中建立public_html文件夾,並添加測試網頁文件。
3. 重啟httpd服務
4. 在客戶機浏覽器中訪問個人主頁
四、httpd服務的訪問控制
1.基於用戶的訪問控制
基於用戶的訪問控制包含認證和授權兩個過程。
認證:指識別用戶身份的過程
授權:是允許特定用戶訪問特定區域信息的過程
Apache使用基本認證和摘要認證兩種方式
使用摘要認證需要編輯httpd的過程中預先配置"--enable-auth-digest"項
基本認證是apache的基本功能,不需要預先配置特別的選項
1).編輯httpd.conf配置文件,查找關於awstats的目錄區域設置,添加認證授權設置
AuthName :定義受保護的領域名稱
AuthType :設置認證類型
AuthUserFile:設置用於保存賬號、密碼的認證文件路徑
require valid-user :授權給認證文件中的所有有效用戶
2).創建存儲認證用戶賬號及口令的文件
3).重啟服務
4).在浏覽器中訪問awstats頁面進行驗證
2.基於客戶端地址的訪問控制
基於客戶端地址訪問控制主要應用於目錄區域“<directory>```<directory>”
配置項:
Order allow,deny : 先允許後拒絕,默認拒絕所有沒有被明確允許的客戶端地址
Order deny,allow : 先拒絕後允許,默認允許所有沒有被明確拒絕的客戶端地址
本文出自 “Hello_小壯” 博客,請務必保留此出處http://xiaozhuang.blog.51cto.com/4396589/861715