###Section2:’Main’ server configuration – 主服務器
###Section3:Virtual Hosts—虛擬主機
2和3只能有一個生效。
###Section2:’Main’ server configuration,表示只提供一個web服務器,不提供虛擬主機
###Section3:Virtual Hosts—虛擬主機,表示禁用main server,啓用虛擬主機,意味着一個物理主機提供多個不同的站點
1. ###Section2:’Main’ server configuration
ServerAdmin root@localhost ---管理員聯繫方式
#ServerName www.example.com:80 ---服務器名字
如果沒有配置,啓用服務:servicehttpd start的時候,會
通過Ip地址反射主機名,如果沒有配置主機名可能會保存。
在虛擬主機段中是必須的。
DocumentRoot “/web/html” --- 放程序的目錄,可以修改
#DocumentRoot “/var/www/html”
定義訪問的方式
<Directory />
OptionsIndexes FollowSymLinks
#Indexes是否允許索引目錄,允許列出文件,可以下載,做下載站的時候,none任何選項都不只是
#如果是生產環境的web項目,千萬不要啓用Indexes,否則會暴露代碼
# FollowSymLinks --- 允許訪問符號鏈接指向的文件
#Includes:運行執行服務端包含(SSI),不安全
#ExecCGI: 允許運行CGI腳本
#All: 支持所有選項
----
AllowOverride None --允許覆蓋下面2項
#order:用於定義基於主機的訪問功能的
#,IP,網絡地址或者主機定義訪問控制機制
Orderallow,deny --order順序,先allow,後deny
Allow fromall
Denyfrom
<!—
要求認證配置方式:
--基於用戶的認證
AllowOverride AuthConfig
AuthType Basic
AuthName “Restricted Site…”
AuthUserFile “/etc/httpd/conf/htpasswd”
Require valid-user
注:
創建:
/etc/httpd/conf/htpasswd
第一次創建這個文件的時候用-c, 否則第二次會清空文件的
Htpassed–c –m /etc/httpd/conf/htpasswd hadoop
Htpassed–m /etc/httpd/conf/htpasswd hadoop tom
Cathtpasswd
重啓web服務器,刷新,要求輸入密碼
---基於組的認證
AllowOverride AuthConfig
AuthType Basic
AuthName “Restricted Site…”
AuthUserFile “/etc/httpd/conf/htpasswd”
AuthGroupFile “/etc/httpd/conf/htgroup”
Require group myusers
創建“/etc/httpd/conf/htgroup”
Vimhtgroup
Myusers:hadoop tom
Httpd-t
-->
</Directory>
僅僅允許192.168.0.0這個網絡訪問的配置如下;
Order allow,deny
Allow from 192.168.0.0
--除了明確定義的,沒有定義的都被deny了
如果發過來呢?
Order deny, allow
deny from 192.168.0.1
--除了明確定義的,都被allow
拒絕192.168.0.1和172.16.100.177訪問:
先deny,後allow
Order deny,allow
Deny from 172.16.100.177 192.168.0.1
--先明確拒絕,然後默認都是allow
Httpd –t ----檢測配置文件的語法是否正確
Elinks -dumphttp://www.baidu.com --打開一個純文本的網頁
-dump 顯示立即退出交互模式
-source 顯示源碼
地址的表示方式:
IP
Network/netmask
HOSTNAME: www.a.com
Domainname: magedu.com
Partial IP:172.16,172.16.0.0/16
Httpd2.4不再是allow和deny的方式。
http –M | grep dir
以下模塊是支持用戶在自己的home目錄建立網站
美國的大學教授一般都這樣建目錄
<IfModule mod_userdir.c>
UserDirdisable
#serDir public_html
</IfModule>
Chmod o+x /home/hadoop/
Service
DirectoryIndex index.html index.html.var ---指定默認文件,從左到右
#AccessFileName .htaccess ---訪問控制機制,效率極低
<Files ~”`\.ht”> --符合該匹配的文件都不能在網上訪問,因爲很多密碼文件是這個格式的
Orderallow,deny
Deny fromall
</Files>
TypeConfig /etc/mime.types --支持的mime類型,能傳輸二級制文檔
DefaultType text/plain ---明文文本
HostnameLookup off ----日誌中的主機表示爲主機名
ErrorLog logs/error_log
LogLevel warn
LogFormat “%h%l %u %t \”%r\” %>s %b \~%{Referer}i\” \”%{User-Agent}i ”” combined
%h :遠程主機地址
%l :遠程主機的登陸名
%u :客戶端登陸用戶
%t :請求報文的第一行
%r :來自哪個網站
%>s : 狀態碼
%b: 響應報文的大小
%{Referer}i : 訪問什麼也沒,i表示請求中的Referer ,表示從哪裏來的
%{User-Agent}i :訪問什麼也沒,i表示請求中的User-Agent,使用的瀏覽器
通過日誌可以統計日誌訪問量:
PV: PageView, 每天的頁面訪問量
UV: UserView, 每天的IP訪問量
不用統計圖片的訪問量
#定義路徑別名
Alias /icons/ “/var/www/icons/”
例子:
假如網站根目錄:/web/html
Http://localhost/bbs/images/logo.jpep
bbs/images/這個目錄不在/web/html下
但需要配置一個路徑別名:
Alias /bbs/images “/var/www/icons/”
小結:
定義網站文檔根目錄
訪問選項: options
基於主機的訪問的控制;
基於用戶或者組的訪問控制
用戶個人站點
錯誤日誌
日誌格式
訪問日誌 PV,UV
路徑別名