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
訪問抓包驗證:
2.apache網頁壓縮:
作用:配置 Apache 的網頁壓縮功能,是使用 Gzip 壓縮算法來對 Apache 服務器發佈的網頁內容進行壓縮後再傳輸到客戶端瀏覽器。通常在cpu有空閒,網站帶寬佔用高時,會啓用壓縮;
優勢:
1)加快網頁加載的速度,改善用戶的瀏覽體驗
2)降低網絡傳輸帶寬, 服務器節省流量
3)網頁壓縮有利於搜索引擎的抓取
方式:Apache 能實現網頁壓縮功能的模塊有 mod_gzip 模塊和 mod_deflate 模塊
注意:編譯安裝時需要使用以下配置項;
--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
訪問並抓包驗證:
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優化隱藏版本號;
方式一:
[root@www ~]# vi /usr/local/httpd/conf/httpd.conf ##添加在末尾
ServerTokens Prod ##顯示最少的信息,默認是Full顯示完整信息
ServerSignature Off ##生成頁面的頁腳
訪問測試驗證:
方式二:
如果是源代碼編譯安裝,還可以用修改源碼編譯的方法:進入 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
訪問測試:
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
訪問測試:
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的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
訪問測試:
方式二:相同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
訪問測試:
方式三:相同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
訪問測試: