hosts文件路徑javascript
添加一個域名css
47.106.84.56 www.wxy.com www.test.comhtml
測試訪問java
開啓默認虛擬主機須要修改apache配置文件apache
vim /usr/local/apache2.4/conf/httpd.conf
vim
去掉Include conf/extra/httpd-vhosts.conf 註釋#號windows
修改虛擬主機文件瀏覽器
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
緩存
修改內容:app
<VirtualHost *:80> DocumentRoot "/data/wwwroot/abc.com" ServerNameabc.com ServerAlias www.abc.com www.123.com ErrorLog "logs/abc.com-error_log" CustomLog "logs/abc.com-access_log" common </VirtualHost> <VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
建立對應的目錄和文件
mkdir /data/wwwroot/
mkdir /data/wwwroot/abc.com
mkdir /data/wwwroot/111.com
touch /data/wwwroot/abc.com/index.html
echo "this is abc " > /data/wwwroot/abc.com/index.html
touch /data/wwwroot/111.com/index.html
echo "this is 111" > /data/wwwroot/111.com/index.html
測試
驗證和從新加載配置文件
測試
curl -x 172.18.11.153:80 111.com
curl -x 172.18.11.153:80 abc.com
修改虛擬主機配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
針對111.com修改添加如下內容
<Directory /data/wwwroot/111.com> AllowOverride AuthConfig AuthName "111.com user auth" AuthType Basic AuthUserFile /data/.htpasswd require valid-user </Directory>
建立密碼
/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd test
-c參數建立 -m指定加密類型
測試
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
curl -x127.0.0.1:80 111.com
401狀態碼就是須要密碼
curl命令-u參數能夠輸入帳號密碼: curl -x 172.18.11.153:80 111.com -u test:123
test是用戶名,123是密碼
域名跳轉相似於將網頁從新指向另外一個網站,但區別是域名跳轉會將域名自己從新指向網站,而不使用HTML或腳原本進行從新指向。當域名被設置爲跳轉至另外一網站,域名的地址將不會保留在瀏覽器的URL欄中,該欄顯示的會是新頁面的URL。若是您但願保留該欄中的URL,則須要使用隱形跳轉。
域名跳轉文件配置
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
添加如下內容
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^111.com$ RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] </IfModule>
和一個不存在的域名:333.com
開啓rewrite模塊是否開啓
/usr/local/apache2.4/conf/httpd.conf
去掉註釋#
測試
curl -x 172.18.11.153:80 3333.com
301:永久跳轉,302:臨時跳轉,200:文件存在,404:文件不存在
日誌路徑
ll /usr/local/apache2.4/logs/
查看
修改日誌格式
剛查看的日誌信息包含:訪問主機,用戶,時間,訪問的狀態。咱們也能夠自定義日誌的格式
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
把以前的common,改成combined
再次查看日誌內容
不少網站大多爲靜態網頁,網頁內部的圖片、css文件等一樣有其網址連接,若是不設置,這些無效的信息也將被存入訪問日誌中,會致使訪問日誌文件大小快速增長,佔用大量存儲空間。咱們能夠經過設置不記錄某些文件來減小無效信息,節省內存資源。
上傳一張1.png到111.com目錄
訪問並查看日誌
curl -x 172.18.11.153:80 111.com/1.png -I
查看有.png結尾的日誌
修改虛擬主機文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
添加如下內容
SetEnvIf Request_URI ".*\.gif$" img SetEnvIf Request_URI ".*\.jpg$" img SetEnvIf Request_URI ".*\.png$" img SetEnvIf Request_URI ".*\.bmp$" img SetEnvIf Request_URI ".*\.swf$" img SetEnvIf Request_URI ".*\.js$" img SetEnvIf Request_URI ".*\.css$" img CustomLog "logs/111.com-access_log" combined env=!img
查看結果
修改完成後,從新加載,再次訪問1.png,查看日誌已經再也不記錄了
若是日誌太大,總有一天會把磁盤佔滿,因此有必要天天進行日誌切割,並刪除老的日誌
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
修改一下內容
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
/usr/local/apache2.4/bin/rotatelogs:apache自帶的分割日誌的工具
-l:按當前系統時間爲基準進行切割(我國爲CST),不然默認UTC
%Y%m%d表示年月日,這樣會天天記錄一個帶日期的日誌文件
86400(s)表示天天都進行切割,一天24小時等於86400秒
瀏覽器訪問網站的圖片時會把靜態的文件緩存在本地電腦裏,這樣下次再訪問時就不用去遠程下載了。 可是緩存多久呢?若是網站圖片更新了呢,那麼應該訪問新圖片纔是。因此這就涉及到靜態文件緩存時長的問題了,也就是「緩存過時時間」。
修改httpd.conf文件
vim /usr/local/apache2.4/conf/httpd.conf
去掉註釋#
LoadModule expires_module modules/mod_expires.so
虛擬主機文件配置
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
增長一下內容
<IfModule mod_expires.c> ExpiresActive on //打開該功能的開關 ExpiresByType image/gif "access plus 1 days" ExpiresByType image/jpeg "access plus 24 hours" ExpiresByType image/png "access plus 24 hours" ExpiresByType text/css "now plus 2 hour" ExpiresByType application/x-javascript "now plus 2 hours" ExpiresByType application/javascript "now plus 2 hours" ExpiresByType application/x-shockwave-flash "now plus 2 hours" ExpiresDefault "now plus 0 min" </IfModule>
測試
瀏覽器訪問圖片,F12查看圖片的狀態碼爲200
刷新如下查看變成了304