apache應用詳解及優化

apache應用詳解及優化

一、apache優化之保持連接、網頁傳輸壓縮、頁面緩存時間;
二、apache優化隱藏版本號;
三、apache優化之防盜鏈;
四、apache的ab壓力測試;
五、apache 日誌分析工具;
六、apache訪問控制;
七、apache優化之日誌分割;
八、apache實現虛擬主機;

案例環境:
系統類型 IP地址 主機名 所需軟件
Centos 6.5 64bit 192.168.100.150 www.linuxfan.cn httpd-2.2.17.tar.gz
注:
yum -y install zlib-devel ##安裝--enable-deflate選項需要的網頁壓縮傳輸的軟件包
./configure --prefix=/usr/local/httpd --enable-cgi --enable-rewrite --enable-so --enable-deflate --enable-expires ##編譯安裝時的命令

一、apache優化之保持連接、網頁傳輸壓縮、頁面緩存時間;

1.保持連接、長鏈接(keep-alive):
作用:HTTP協議是TCP的子協議,HTTP建立連接時需要先建立TCP連接,斷開時也需要端口TCP連接,TCP的建立和斷開消耗的資源通過HTTP 連接保持可以節約下來。對於 HTTP/1.1,儘量地保持客戶端的TCP連接,通過一個TCP連接傳送多個 HTTP 請求響應,對於客戶端可以提高 50%以上的響應時間,對於服務器可以降低建立與關閉TCP連接時的資源消耗。

配置項:
keepalive ON|OFF 是否打開保持連接功能。根據網站的併發請求量決定是否打開,高併發時打開,併發量不高時可選擇關閉。
keepalive timeout 一次TCP連接多次HTTP請求之間的最大間隔時間,兩次HTTP請求超過此時間連接將會斷開。
maxkeepaliverequestes 一次TCP連接能夠傳輸的最大HTTP請求數量。

[root@www ~]# vi /usr/local/httpd/conf/extra/httpd-default.conf
16 KeepAlive On   
23 MaxKeepAliveRequests 100
29 KeepAliveTimeout 20
:wq
[root@www ~]# sed -n '/httpd-default.conf/p' /usr/local/httpd/conf/httpd.conf       ##查看
#Include conf/extra/httpd-default.conf
[root@www ~]# sed -i '/httpd-default.conf/s/^#//g' /usr/local/httpd/conf/httpd.conf      ##去除註釋
[root@www ~]# sed -n '/httpd-default.conf/p' /usr/local/httpd/conf/httpd.conf    ##查看驗證
Include conf/extra/httpd-default.conf
[root@www ~]# sed -i '97s/^#//g' /usr/local/httpd/conf/httpd.conf
[root@www ~]# sed -i 's/www.example.com/www.linuxfan.cn/g' /usr/local/httpd/conf/httpd.conf
[root@www ~]# /usr/local/httpd/bin/apachectl start

訪問抓包驗證:
apache應用詳解及優化

2.apache網頁壓縮:
作用:配置 Apache 的網頁壓縮功能,是使用 Gzip 壓縮算法來對 Apache 服務器發佈的網頁內容進行壓縮後再傳輸到客戶端瀏覽器。通常在cpu有空閒,網站帶寬佔用高時,會啓用壓縮;
優勢:
1)加快網頁加載的速度,改善用戶的瀏覽體驗
2)降低網絡傳輸帶寬, 服務器節省流量
3)網頁壓縮有利於搜索引擎的抓取
方式:Apache 能實現網頁壓縮功能的模塊有 mod_gzip 模塊和 mod_deflate 模塊
apache應用詳解及優化
注意:編譯安裝時需要使用以下配置項;
--enable-deflate ##啓用deflate模塊,注意必須安裝依賴包“zlib-devel”
配置項:
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript 對什麼格式的內容啓用壓縮
DeflateCompressionLevel 9 壓縮級別爲9,範圍是1-9,數字大壓縮率高
SetOutputFilter DEFLATE 啓用deflate壓縮方式

[root@www ~]# /usr/local/httpd/bin/apachectl -D DUMP_MODULES |grep deflate
 deflate_module (static)
Syntax OK
[root@www ~]# vi /usr/local/httpd/conf/httpd.conf           ##在最後添加如下配置
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
:wq
[root@www ~]# /usr/local/httpd/bin/apachectl start

訪問並抓包驗證:

apache應用詳解及優化
3.apache頁面緩存時間:
作用:通過 mod_expires 模塊配置 Apache,使網頁能在客戶端瀏覽器緩存一段時間,以避免重複請求,減輕服務端工作壓力。啓用 mod_expires 模塊後,會自動生成頁面頭部信息中的 Expires 標籤和 CacheControl 標籤,從而降低客戶端的訪問頻率和次數,達到減少不必要的流量和增加訪問速度的目的。
注意:編譯安裝時必須使用以下配置項
--enable-expires ##啓用網頁緩存過期時間模塊
配置項:
<IfModule mod_expires.c>
ExpiresActive On ##啓用頁面緩存時間
ExpiresDefault "access plus 60 seconds" ##設置默認緩存1分鐘
</IfModule>

[root@www ~]# /usr/local/httpd/bin/apachectl -D DUMP_MODULES |grep expires
expires_module (static)
Syntax OK
[root@www ~]# vi /usr/local/httpd/conf/httpd.conf ##在最後添加如下配置
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds"
</IfModule>
[root@www ~]# /usr/local/httpd/bin/apachectl restart

清除瀏覽器歷史記錄,重新訪問測試:
apache應用詳解及優化

二、apache優化隱藏版本號;

方式一:
[root@www ~]# vi /usr/local/httpd/conf/httpd.conf ##添加在末尾
ServerTokens Prod ##顯示最少的信息,默認是Full顯示完整信息
ServerSignature Off ##生成頁面的頁腳
訪問測試驗證:
apache應用詳解及優化

方式二:
如果是源代碼編譯安裝,還可以用修改源碼編譯的方法:進入 Apache 的源碼目錄下的 include 目錄, 編輯 ap_release.h 這個文件如下變量,然後重新編譯安裝即可:
42 #define AP_SERVER_BASEVENDOR "linuxfan.cn Software Foundation"
43 #define AP_SERVER_BASEPROJECT "Miscrosoft-IIS"
44 #define AP_SERVER_BASEPRODUCT "Microsoft-IIS"
45
46 #define AP_SERVER_MAJORVERSION_NUMBER 6
47 #define AP_SERVER_MINORVERSION_NUMBER 6
48 #define AP_SERVER_PATCHLEVEL_NUMBER 6

三、apache優化之防盜鏈;

作用:防盜鏈就是防止別人盜用服務器中的圖片、文件、視頻等相關資源。運維人員可以通過apache提供rewrite模塊進行優化。
配置項:
RewriteEngine ON ##打開網頁重寫功能
RewriteCond ##設置匹配規則
RewriteRule ##設置跳轉動作
rewrite的規則:%{HTTP_REFERER} 瀏覽 header 中的鏈接字段,存放一個連接的 URL,代表是從哪個鏈接訪問所需的網頁。
!^ 不以某個字段開頭
.$ 以任意字符結尾
NC 不區分大小寫
R 強制跳轉
規則匹配:如果相應變量的值匹配所設置的規則,則逐條往下處理;如果不匹配,則後面的規則不再繼續匹配。
配置實例:
[root@www ~]# vi /usr/local/httpd/conf/httpd.conf
在<Directory “/usr/local/httpd/htdocs”> 區域中,添加:
RewriteEngine On ##啓用重寫功能
RewriteCond %{HTTP_REFERER} !^http://linuxfan.cn/.
$ [NC]
RewriteCond %{HTTP_REFERER} !^http://linuxfan.cn$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.linuxfan.cn/.$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.linuxfan.cn$ [NC]
RewriteRule .
.(gif|jpg|png|swf)$ http://www.linuxfan.cn/error.html [R,NC]
</Directoy>
最終匹配結果爲:第二、三、四、五行的信任站點,能夠使用網站上的圖片;處理信任站點以外的站點,如果訪問或使用 http://www.linuxfan.cn 域名以外的 gif、 jpg、 swf結尾的文件將跳轉到重定向頁面。
案例:
1.案例環境:
系統類型 IP地址 主機名 所需軟件
Centos 6.5 64bit 192.168.100.150 linuxfan httpd-2.2.17.tar.gz
Centos 6.5 64bit 192.168.100.151 linuxren httpd-2.2.17.tar.gz

2.安裝配置linuxfan主機的httpd服務;

[root@linuxfan ~]# tar zxvf httpd-2.2.17.tar.gz -C /usr/src/
[root@linuxfan ~]# cd /usr/src/httpd-2.2.17/
[root@linuxfan httpd-2.2.17]#./configure --prefix=/usr/local/httpd --enable-cgi --enable-rewrite --enable-so && make && make install
[root@linuxfan httpd-2.2.17]# cd
[root@linuxfan ~]# sed -i '97s/^#//g' /usr/local/httpd/conf/httpd.conf
[root@linuxfan ~]# sed -i 's/www.example.com/www.linuxfan.cn/g' /usr/local/httpd/conf/httpd.conf
[root@linuxfan ~]# cat <<END >/usr/local/httpd/htdocs/index.html
<html>
<head><title></title></head>
<body>
<h1>www.linufan.cn</h1>
<img src="./linux.jpg" />
</body>
</html>
END
[root@linuxfan ~]# ls /usr/local/httpd/htdocs/
index.html  linux.jpg
[root@linuxfan ~]# /usr/local/httpd/bin/apachectl start

訪問測試:
apache應用詳解及優化

3.安裝配置linuxren主機的httpd服務;
[root@linuxren ~]# tar zxvf httpd-2.2.17.tar.gz -C /usr/src/
[root@linuxren ~]# cd /usr/src/httpd-2.2.17/
[root@linuxren httpd-2.2.17]#./configure --prefix=/usr/local/httpd --enable-cgi --enable-rewrite --enable-so && make && make install
[root@linuxren httpd-2.2.17]# cd
[root@linuxren ~]# sed -i '97s/^#//g' /usr/local/httpd/conf/httpd.conf
[root@linuxren ~]# sed -i 's/www.example.com/www.linuxren.cn/g' /usr/local/httpd/conf/httpd.conf
[root@linuxren ~]# cat <<END >/usr/local/httpd/htdocs/index.html
<html>
<head><title> </title></head>
<body>
<h1>www.linuxren.cn </h1>
<img src="http://www.linuxfan.cn/linux.jpg" alt="訪問被拒絕了!對方設置了防盜鏈!" />
</body>
</html>
END
[root@linuxren ~]# /usr/local/httpd/bin/apachectl start
訪問測試:
apache應用詳解及優化

4.爲linuxfan網站設置防盜鏈,防止linuxren網站盜用圖片;
[root@linuxfan ~]# vi /usr/local/httpd/conf/httpd.conf
132 <Directory "/usr/local/httpd/htdocs">
133 RewriteEngine On
134 RewriteCond %{HTTP_REFERER} !^http://linuxfan.cn/.$ [NC]
135 RewriteCond %{HTTP_REFERER} !^http://linuxfan.cn$ [NC]
136 RewriteCond %{HTTP_REFERER} !^http://www.linuxfan.cn/.
$ [NC]
137 RewriteCond %{HTTP_REFERER} !^http://www.linuxfan.cn$ [NC]
138 RewriteRule .*(gif|jpg|png|swf)$ http://www.linuxfan.cn/error.html [R,NC]
:wq
[root@linuxfan ~]# echo "deny" >>/usr/local/httpd/htdocs/error.html
[root@linuxfan ~]# /usr/local/httpd/bin/apachectl restart
訪問驗證:

apache應用詳解及優化

四、apache的ab壓力測試;

作用:Apache 附帶了壓力測試工具 ab,非常容易使用,並且完全可以模擬各種條件對 Web 服務器發起測試請求。在進行性能調整優化過程中,可用 ab 壓力測試工具進行優化效果的測試。
語法:ab -n 請求數總和 -c 併發用戶數 網站網址
重要參數:
Time taken for tests ##表示所有這些請求被處理完成所花費的總時間
Failed requests ##表示失敗的請求數量
Requests per second ##吞吐率,計算公式: Complete requests / Time taken for tests
Transfer rate ##表示這些請求在單位時間內從服務器獲取的數據長度,計算公式:Total trnasferred/ Time taken for tests,這個統計很好的說明服務器的處理能力達到極限時,其出口寬帶的需求量。
[root@linuxfan ~]# /usr/local/httpd/bin/ab -n 1000 -c 80 http://192.168.100.150/index.html
拓展:自行百度apache其他性能壓力測試工具

五、apache 日誌分析工具;

方式一:apachetop工具
作用:查看服務器的實時運行情況,比如哪些 URL 的訪問量最大,服務器每秒的請求數,等等。apachetop 就是這樣一個工具, 能夠讓你實時的監測 apache 服務器的運行狀況。

[root@linuxfan ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.rep
[root@linuxfan ~]# yum -y install epel-release
[root@linuxfan ~]# yum -y install apachetop
[root@linuxfan ~]# apachetop -f /usr/local/httpd/logs/access_log
last hit: 06:14:54         atop runtime:  0 days, 00:00:05             06:14:55
All:            6 reqs (   3.0/sec)          0.0B (    0.0B/sec)       0.0B/req
2xx:       0 ( 0.0%) 3xx:   6 ( 100%) 4xx:     0 ( 0.0%) 5xx:     0 ( 0.0%)
R (  5s):       6 reqs (   1.2/sec)          0.0B (    0.0B/sec)       0.0B/req
2xx:       0 ( 0.0%) 3xx:   6 ( 100%) 4xx:     0 ( 0.0%) 5xx:     0 ( 0.0%)

 REQS REQ/S    KB KB/S URL
    3  1.50   0.0  0.0*/
    3  1.50   0.0  0.0 /linux.jpg

方式二:awstats日誌分析系統
作用:Awstats 軟件是一個由perl語言所編寫的免費強大的服務器的日誌文件分析工具,顯示你所有的網頁/郵件/ FTP統計包括訪問,訪問者,頁面,點擊,高峯時間,操作系統,瀏覽器,搜索引擎,關鍵字。

[root@linuxfan ~]# tar zxvf awstats-7.3.tar.gz 
[root@linuxfan ~]# mv awstats-7.3  /usr/local/awstats
[root@linuxfan ~]# cd  /usr/local/awstats/tools
[root@linuxfan tools]# chmod +x ./*
[root@linuxfan tools]# ./awstats_configure.pl  
Do you want to continue setup from this NON standard directory [yN] ? Y
Config file path ('none' to skip web server setup):
> /usr/local/httpd/conf/httpd.conf
Do you want me to setup Apache to write 'combined' log files [y/N] ? Y
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? Y
Your web site, virtual server or profile name:
> www.linuxfan.cn
Directory path to store config file(s) (Enter for default):   回車
Press ENTER to continue...    回車
Press ENTER to finish...    回車
[root@linuxfan tools]# cd
[root@linuxfan ~]# vi /etc/awstats/awstats.www.linuxfan.cn.conf
LogFile="/usr/local/httpd/logs/access_log"                   ##修改第 50 行
:wq
[root@linuxfan ~]# mkdir /var/lib/awstats
[root@linuxfan ~]# echo "*/5 * * * *  /usr/local/awstats/tools/awstats_updateall.pl now" >/var/spool/cron/root   
[root@linuxfan ~]# /etc/init.d/crond restart
[root@linuxfan ~]# /usr/local/awstats/tools/awstats_updateall.pl now        ##執行首次更新,如若更新訪問數據無法更新,出現日誌格式問題,需要調整日誌格式爲combined格式,如若已經爲該模式,可將日誌文件刪除,重啓服務生成即可
[root@linuxfan ~]# /usr/local/httpd/bin/apachectl  restart
訪問測試:
http://www.linuxfan.cn/awstats/awstats.pl?config=www.linuxfan.cn
![](https://s1.51cto.com/images/blog/201907/29/4fef1d3eb9c2c68ab7ee4dba81191ce1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

六、apache訪問控制;
作用:爲apache服務提供的頁面設置客戶端訪問權限,爲某個組或者某個用戶加密訪問;

[root@linuxfan ~]# /usr/local/httpd/bin/htpasswd -c /usr/local/httpd/conf/htpasswd zs  ##添加admin用戶,可以在兩個路徑中間添加-c是新建文件刪除原文件
New password:                                   ##輸入密碼pwd@123
Re-type new password:                           ##確認密碼
Adding password for user zs 
[root@linuxfan ~]# cat /usr/local/httpd/conf/htpasswd   
zs:TpPLVJuXl0wsE
[root@linuxfan ~]# /usr/local/httpd/bin/htpasswd /usr/local/httpd/conf/htpasswd  ls
New password:                                   ##輸入密碼pwd@123
Re-type new password:                           ##確認密碼
Adding password for user ls 
[root@linuxfan ~]# /usr/local/httpd/bin/htpasswd /usr/local/httpd/conf/htpasswd  ww 
New password:                               ##輸入密碼pwd@123
Re-type new password:                           ##確認密碼
Adding password for user ww
[root@linuxfan ~]# vi /usr/local/httpd/conf/htgroups   ##爲授權用戶加入組
mygroup: zs  ls                         ##組名: 成員1  成員2
[root@linuxfan ~]# vim /usr/local/httpd/conf/httpd.conf
421 <Directory "/usr/local/awstats/wwwroot">
422     Options None
423     AllowOverride None
424     Order allow,deny
425     Allow from 192.168.100.110
426     AuthType Basic                   ##定義認證的類型爲Basic
427     AuthName "Log analysis system"       ##提示短語
428     AuthBasicProvider file               ##提供認證者爲file
429     AuthUserFile /usr/local/httpd/conf/htpasswd          ##指定認證用戶文件
430     AuthGroupFile /usr/local/httpd/conf/htgroups     ##指定認證組文件
431     Require group mygroup                        ##設置允許訪問的用戶或者組,如果設置爲所有用戶改爲“Require valid-user”即可,若設置單個用戶爲Require user 用戶名 即可;
432 </Directory>  
:wq
[root@linuxfan ~]# /usr/local/httpd/bin/apachectl  restart  
訪問測試:
http://www.linuxfan.cn/awstats/awstats.pl?config=www.linuxfan.cn        
##輸入用戶測試,zs與ls能登錄,ww不能登錄

七、apache優化之日誌分割;
作用:隨着網站訪問量的增加,訪問日誌中的信息會越來越多, Apache 默認訪問日誌accesslog單個文件會越來越大,日誌文件體積越大,信息都在一個文件中,查看及分析信息會及不方便。
實現方式:
1.利用 apache 自帶的日誌輪循程序 rotatelogs
ErrorLog "|rotatelogs 命令的絕對路徑 -l logs/error
%Y%m%d%H%M%S.log 秒數"
CustomLog "| rotatelogs 命令的絕對路徑-l logs/access
%Y%m%d%H%M%S.log 秒數"
combined
2.利用一個發展已經比較成熟的日誌輪循工具 cronolog
ErrorLog "|cronolog 絕對路徑 -l /usr/local/httpd/logs/error
%Y%m%d%H%M%S.log "
CustomLog "|cronnolog絕對路徑 -l /usr/local/httpd/logs/access_%Y%m%d%H%M%S.log" combined
3.利用定時任務和 shell 腳本做日誌切割

方式一: 利用 apache 自帶的日誌輪循程序 rotatelogs日誌分割:
[root@linuxfan ~]# vi /usr/local/httpd/conf/httpd.conf ##10秒切割一次日誌文件(切割日誌時間頻率可以自行改變,根據PV來決定,),-l選項是小寫的L表示local time(本地時間)
216 CustomLog "|/usr/local/httpd/bin/rotatelogs -l /usr/local/httpd/logs/access_%Y%m%d%H%M%S.log 10" combined
:wq
[root@linuxfan ~]# /usr/local/httpd/bin/apachectl restart
[root@linuxfan ~]# ls /usr/local/httpd/logs/
access_20171205054810.log error_log
access_20171205054820.log httpd.pid

方式二:利用一個發展已經比較成熟的日誌輪循工具 cronolog
[root@linuxfan ~]# tar xf cronolog-1.6.2.tar.gz -C /usr/src/  
[root@linuxfan ~]# cd /usr/src/cronolog-1.6.2/
[root@linuxfan cronolog-1.6.2]# ./configure && make && make install
[root@linuxfan cronolog-1.6.2]# cd
[root@linuxfan ~]# which cronolog
/usr/local/sbin/cronolog
[root@linuxfan ~]# vi /usr/local/httpd/conf/httpd.conf    ##可以跟據文件名中的變量來設置分割的頻率,Y表示四位年份、m表示月份、d表示月份中的天數
213 CustomLog "|/usr/sbin/cronolog /usr/local/httpd/logs/access_%Y%m%d.log"         combined
:wq
[root@linuxfan ~]# /usr/local/httpd/bin/apachectl  restart
[root@linuxfan ~]# ls /usr/local/httpd/logs/
access_20171206.log   access_log   error_log   httpd.pid

方式三:腳本完成(定期移動httpd日誌文件,並且保存期限爲30天):
[root@linuxfan ~]# vi /opt/cut_httpd_log.sh
#!/bin/bash
logpath="/usr/local/httpd/logs"
datetime=$(date -d "-1 day" "+%Y%m%d")26 / 27
[ -d $logpath/backup ] || mkdir $logpath/backup
mv $logpath/access_log $logpath/backup/access_log-$datetime
/usr/local/httpd/bin/apachectl graceful   ##
find $logpath/backup/ -mtime +30 | xargs rm –f
[root@linuxfan ~]# chmod +x /opt/cut_httpd_log.sh
[root@linuxfan ~]# echo "00 00 * * * /bin/bash /opt/cut_httpd_log.sh &> /dev/null" >>/var/spool/cron/root
[root@linuxfan ~]# service crond restart

日誌合併:
可以將每個服務器每天的日誌文件通過 rsync 下載到專門進行訪問統計分析的服務器上進行合併。合併多個服務器的日誌文件,例如: log1 log2 log3 並輸出到 log_all 中的方法是:
sort -m -t " " -k 4 -o log_all access_log1 access_log2 access_log3
-m 使用 merge 優化算法
-t 指定排序的分割符
-k 4 指定排序時行中多列時,排序的依據列爲哪列,表示根據時間進行排序
-o 表示將排序結果存放到指定的文件中

八、apache實現虛擬主機;
作用:在同一臺服務器實現部署多個網站站點,節省資源;
實現方式:
1.不同IP,不同域名,相同端口;
2.相同IP,相同域名,不同端口;
3.相同IP,相同端口,不同域名;

方式一:不同IP,不同域名,相同端口;
[root@linuxfan ~]# ifconfig eth0:0 192.168.100.200
[root@linuxfan ~]# ip a |grep 192.168.100
    inet 192.168.100.150/24 brd 192.168.100.255 scope global eth0
    inet 192.168.100.200/24 brd 192.168.100.255 scope global secondary eth0:0
[root@linuxfan ~]# vi /usr/local/httpd/conf/httpd.conf
 40 Listen 192.168.100.150:80
 41 Listen 192.168.100.200:80
   Include conf/extra/httpd-vhosts.conf         ##去掉註釋
[root@linuxfan ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost 192.168.100.150:80
NameVirtualHost 192.168.100.200:80
<VirtualHost 192.168.100.150:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/httpd/htdocs/linuxfan/"
    ServerName www.linuxfan.cn
    ErrorLog "logs/www.linuxfan.cn-error_log"
    CustomLog "logs/www.linuxfan.cn-access_log" common
</VirtualHost>
<VirtualHost 192.168.100.200:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/httpd/htdocs/linuxren/"
    ServerName www.linuxren.cn
    ErrorLog "logs/www.linuxren.cn-error_log"
    CustomLog "logs/www.linuxren.cn-access_log" common
</VirtualHost>
[root@linuxfan ~]# mkdir /usr/local/httpd/htdocs/linuxfan
[root@linuxfan ~]# mkdir /usr/local/httpd/htdocs/linuxren
[root@linuxfan ~]# echo "www.linuxfan.cn" >/usr/local/httpd/htdocs/linuxfan/index.html
[root@linuxfan ~]# echo "www.linuxren.cn" >/usr/local/httpd/htdocs/linuxren/index.html
[root@linuxfan ~]# /usr/local/httpd/bin/apachectl start
[root@linuxfan ~]# netstat -utpln |grep 80
tcp        0      0 192.168.100.200:80          0.0.0.0:*                   LISTEN      53981/httpd         
tcp        0      0 192.168.100.150:80          0.0.0.0:*                   LISTEN      53981/httpd

訪問測試:
apache應用詳解及優化

apache應用詳解及優化
方式二:相同IP,相同域名,不同端口;

[root@linuxfan ~]# vi /usr/local/httpd/conf/httpd.conf
Listen 192.168.100.150:80
Listen 192.168.100.150:8080
   Include conf/extra/httpd-vhosts.conf         ##去掉註釋
[root@linuxfan ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost 192.168.100.150:80
NameVirtualHost 192.168.100.150:8080
<VirtualHost 192.168.100.150:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/httpd/htdocs/linuxfan/"
    ServerName www.linuxfan.cn
    ErrorLog "logs/www.linuxfan.cn-error_log"
    CustomLog "logs/www.linuxfan.cn-access_log" common
</VirtualHost>
<VirtualHost 192.168.100.150:8080>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/httpd/htdocs/linuxren/"
    ServerName www.linuxfan.cn
    ErrorLog "logs/www.linuxren.cn-error_log"
    CustomLog "logs/www.linuxren.cn-access_log" common
</VirtualHost>
[root@linuxfan ~]# /usr/local/httpd/bin/apachectl restart

訪問測試:
apache應用詳解及優化

方式三:相同IP,相同端口,不同域名;
[root@linuxfan ~]# vi /usr/local/httpd/conf/httpd.conf
Listen 192.168.100.150:80
  Include conf/extra/httpd-vhosts.conf          ##去掉註釋
[root@linuxfan ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost 192.168.100.150:80
<VirtualHost 192.168.100.150:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/httpd/htdocs/linuxfan/"
    ServerName www.linuxfan.cn
    ErrorLog "logs/www.linuxfan.cn-error_log"
    CustomLog "logs/www.linuxfan.cn-access_log" common
</VirtualHost>
<VirtualHost 192.168.100.150:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/httpd/htdocs/linuxren/"
    ServerName www.linuxren.cn
    ErrorLog "logs/www.linuxren.cn-error_log"
    CustomLog "logs/www.linuxren.cn-access_log" common
</VirtualHost>
[root@linuxfan ~]# /usr/local/httpd/bin/apachectl restart

訪問測試:
apache應用詳解及優化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章