任何一個域名指向這臺服務器,只要是沒有對應的虛擬主機,就會由這個默認虛擬主機來處理。php
咱們先來編輯httpd的配置文件:css
#vim /usr/local/apache2.4/conf/httpd.confapache
搜索httpd-vhost,而後把這一行的註釋#去掉。vim
而後再編輯虛擬主機配置文件:瀏覽器
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf緩存
將上圖的內容修改成:安全
ServerAdmin指定管理員郵箱。DocumentRoot爲該虛擬主機站點的根目錄,網站的程序就放在這個目錄下面。ServerName爲網站的域名,ServerAlias爲網站的第二域名,ServerAlias後面的域名能夠寫多個,用空格分開,但ServerName後面的域名不支持寫多個。Errorlog爲站點的錯誤日誌,CustomLog爲站點的訪問日誌。服務器
假如在虛擬主機配置文件中,咱們只定義了兩個站點——abc.com和www.111.com,那麼當第三個域名www.123.com指向本機的時候,當在瀏覽器訪問www.123.com時,會去訪問abc.com,也就是默認虛擬主機。curl
而後進行測試:測試
用戶認證的功能就是在用戶訪問網站的時候,須要輸入用戶名密碼才能順利訪問。一些比較重要的站點或者網站後臺一般會加上用戶認證,目的是保證安全。咱們先來對111.com站點作一個全站的用戶認證:
這樣httpd的配置文件配置完成,但還須要建立密碼文件,操做步驟以下:
配置完成後,須要到宿主機上去修改一下hosts文件(C:\Windows\System32\drivers\etc\hosts),把111.com域名指向你的這臺Linux機器,這樣才能經過瀏覽器訪問到111.com:
在最下面增長一行:
IP地址 111.com
保存hosts文件後,就能夠用Windows上的瀏覽器去訪問111.com了,這會彈出一個用於認證的提示框:
輸入用戶名和密碼後,將會進入111.com網站。上面的操做是針對整個站點作的認證,也能夠針對某個目錄或者某個文件進行認證,好比要對111.com/admin/目錄進行認證,只須要修改一個地方,把<Directory /data/wwwroot/111.com>改成<Directory /data/wwwroot/111.com/admin/>。若是是一個文件,好比在111.com/admin/123.php,則須要這樣作:
但這樣會有一個問題,網址中帶有admin.php的連接都會彈出誰窗口。
域名跳轉的做用:一個站點有多個域名會對SEO有影響,就是對百度搜索關鍵詞的排名有影響,若是把多個域名所有跳轉到指定的一個域名,這樣以這個域名爲中心,就能夠把權重集中在這個域名上,因此搜索關鍵詞的排名也就先前了,還有,若是以前的某個域名再也不使用了,可是搜索引擎還留着以前老域名的連接,這意味着用戶可能會搜到咱們的網站而且點擊老的域名,因此須要把老域名作個跳轉,跳到新域名,這樣用戶搜的時候,也能夠訪問到網站。
咱們實現一個需求,把123.com域名跳轉到111.com下,配置以下:
將上圖內容修改成:
[root@zhangjin-120:/data/wwwroot/111.com]#/usr/local/apache2.4/bin/apachectl -t Syntax OK [root@zhangjin-120:/data/wwwroot/111.com]#/usr/local/apache2.4/bin/apachectl graceful [root@zhangjin-120:/data/wwwroot/111.com]#/usr/local/apache2.4/bin/apachectl -M |grep rewrite [root@zhangjin-120:/data/wwwroot/111.com]#vim /usr/local/apache2.4/conf/httpd.conf
開啓rewrite模塊:
而後進行測試:
訪問日誌做用很大,不只能夠記錄網站的訪問狀況,還能夠在網站有異常發生時幫助咱們定位問題,好比有攻擊時,是能夠經過查看日誌看到一些規律的。要配置httpd訪問日誌,首先要在主配置文件中定義訪問日誌的格式,打開主配置文件:
能夠看到兩個格式的日誌,建議使用第一個,記錄的信息會更全。%h爲訪問網站的IP;%l爲遠程登陸名,這個字段基本上爲「-」;%u爲用戶名,當使用用戶認證時,這個字段爲認證的用戶名;%t爲時間;%r爲請求的動做(好比用curl -I時就爲HEADE);%s爲請求的狀態碼寫成%>s爲最後的狀態碼;%b爲傳輸數據的大小;%{Referer}i爲referer信息;%{User-Agent}i爲瀏覽器的標識。
而後編輯文件#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,更改文件內容以下圖:
一個網站會有不少元素,尤爲是圖片、js、css等靜態的文件進學多,用戶每請求一個頁面就會訪問諸多的圖片、js等靜態元素,這些元素的請求都會被記錄在日誌中。若是一個站點訪問量很大,那麼訪問日誌文件增加會很是快,一天就能夠達到幾GB。這不只對於服務器的磁盤空間形成影響,更重要的是會影響磁盤的讀寫速度。這些巨量的靜態元素請求記錄到日誌裏意義不大,因此能夠限制這些靜態元素去記錄日誌,而且須要把日誌按天歸檔,一天一個日誌,這樣也能夠防止單個日誌文件過大。配置以下:
日誌一直記錄總有一天會把整個磁盤佔滿,因此有必要讓它自動切割,並刪除舊的日誌文件。
咱們打開虛擬主機配置文件:
將上圖更改成:
在httpd的配置文件中,咱們是能夠控制一個靜態文件緩存時長的時間的,編輯虛擬主機配置文件,內容以下: