作者 主題: 出個練習給大家(二)--Apache  (閱讀 48056 次)

0 會員 與 1 訪客 正在閱讀本文。

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
出個練習給大家(二)--Apache
« 於: 2004-08-18 19:28 »
1. VirtualDocumentRoot + PHP 的 web hosting 有那些安全問題要注意 ?如何克服 ?
2. Apache 支援 PHP script, 如何在特定目錄使其不支援 PHP script,而成文字解釋!?
3. HTTP Authorization (HTTP Return Code 401) 如何以 telnet 登入?
4. 如何將盜連另存成一個  log file?
5. 如何實現 Apache Log 依 virtualhost 每天自動備份一次成 $virtualhostname-年-月-日_access.log 而 Web 不重新啟動仍能記錄 ?
6. 如何使用 R-Proxy  達到 HTTP 訪問的負載平衡(Round Robin),且 Log 集中 ?
7. 如何使用 mrtg 畫出每個 virtualhost in/out 流量資訊 ?
8. 如何在收到 IIS worm (ex:CodeRed..Nimda) 的連線後,即時更新 Cisco 設備的 ACL 或 iptables 阻檔該 IP 持續傳送 ?


提目有點偏  :oops: ....有興趣者想想或找答案 .
« 上次編輯: 2007-12-13 09:17 由 damon »

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
Re: 出個練習給大家(二)--Apache
« 回覆 #1 於: 2004-08-18 20:24 »
引述: "abelyang"
1. VirtualDocumentRoot + PHP 的 web hosting 有那些安全問題要注意 ?如何克服 ?
2. Apache 支援 PHP script, 如何在特定目錄使其不支援 PHP script,而成文字解釋!?
3. HTTP Authorization (HTTP Return Code 401) 如何以 telnet 登入?
4. 如何將盜連另存成一個  log file?
5. 如何實現 Apache Log 依 virtualhost 每天自動備份一次成 $virtualhostname-年-月-日_access.log 而 Web 不重新啟動仍能記錄 ?
6. 如何使用 R-Proxy  達到 HTTP 訪問的負載平衡(Round Robin),且 Log 集中 ?
7. 如何使用 mrtg 畫出每個 virtualhost in/out 流量資訊 ?
8. 如何在收到 IIS worm (ex:CodeRed..Nimda) 的連線後,即時更新 Cisco 設備的 ACL 或 iptables 阻檔該 IP 持續傳送 ?
提目有點偏  :oops: ....有興趣者想想或找答案 .


我只知道2而已~但是不知道怎樣成文字解釋~應該也不是正確答案~ :oops:
另外~
關於8~可以即時喔?(從log去分析是事後的~且我也不知道更新cisco的部份)

結論~沒一題會.....

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #2 於: 2004-08-19 14:09 »
引用
我只知道2而已~但是不知道怎樣成文字解釋~應該也不是正確答案~  
..


這一題只要 .php 不 run 成 php 即可,至於顯示或 變成 download 是無所謂的... wilson 倒可教教大家..

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
出個練習給大家(二)--Apache
« 回覆 #3 於: 2004-08-19 14:46 »
1. 由於 php 可以用 include or file 等方式去讀取資料,如此可能會造成讀取到 virtualDocumentRoot 以外的目錄的問題.
應該可以修改 php.ini 的 open_base 來作為控制.
也可以在http中設定 php_admin_value open_base="xxxxx" 來設定的樣子.
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #4 於: 2004-08-19 15:08 »
Darkhero 讚哦~
open_basedir=.
safe_mode=on
disable_functions Ex:file,I/O , dl , init_set/get ....等可能的威脅
最好也再注意 dl() 的使用,以免 USER Load 一些外掛來規避
最好不要給 User 建.htaccess 內容,因為 .htaccess 可以用來設定 php_admin_value/php_admin_flag 等 Override , 官網上有關 safe_mode,int_set 等東西一定要熟看 ...再來就是一些小細節了

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #5 於: 2004-08-19 16:42 »
引述: "abelyang"
引用
我只知道2而已~但是不知道怎樣成文字解釋~應該也不是正確答案~  
..


這一題只要 .php 不 run 成 php 即可,至於顯示或 變成 download 是無所謂的... wilson 倒可教教大家..


阿阿~~我想的應該不是學長要的答案啦~~
我只用過一個小設定讓user不能用php網頁~
是直接找不到網頁了~沒有像學長提的轉成純文字.... :oops:
引用

<Directory "/home/*/public_html">
<Files ~ "*.php*">
Order allow,deny
Deny from all
</Files>
</Directory>

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #6 於: 2004-08-19 16:48 »
這也是一個很好的答案哦...

不過這題的題意在上面有提到一些哦...
php_admin 可以控制 php 些行為

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
出個練習給大家(二)--Apache
« 回覆 #7 於: 2004-08-20 13:56 »
那視不是應該要加上
<directory /home/vhost/xxxxx>
AllowOverride None
</directory>
來設定底層的 .htaccess 無法覆蓋上層的設定..

sorry..這部份不是很熟悉... 只是大概知道似乎可以這樣作....
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #8 於: 2004-08-20 14:10 »
引用
<directory /home/vhost/xxxxx>
AllowOverride None
</directory>
來設定底層的 .htaccess 無法覆蓋上層的設定..


是的,這一點也是很重要的,不然防再多....結果讓 user override
就沒有任何作用了

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
出個練習給大家(二)--Apache
« 回覆 #9 於: 2004-08-23 16:18 »
沒人回?...那我繼續努力....
引用

4. 如何將盜連另存成一個 log file?
5. 如何實現 Apache Log 依 virtualhost 每天自動備份一次成 $virtualhostname-年-月-日_access.log 而 Web 不重新啟動仍能記錄 ?

4. 應該是利用 CustomLog 來將部份的連結設定至某一個檔案.(不過我忘記怎麼設定CustomLog 了..晚點去查.)

5. 印象中,適用 script 去重導 log file 的方式,用 script 去對日期等作處理.在之前大大們的文章中有看到過......也是等下查查在po上來.
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #10 於: 2004-08-23 16:24 »
http://httpd.apache.org/docs/mod/mod_setenvif.html + customlog 哦...找找看...你會看到答案的...這題和 CodeRed 那題很像...

rotatelogs/cronlog 都可以做到哦....也是Customlog 的 | 功能之一, 另外只要多看 LogFormat 之說明即可解出...

zterry26

  • 鑽研的研究生
  • *****
  • 文章數: 596
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #11 於: 2004-08-23 17:39 »
-o-.-o-
各位大大:
我看我還是趕快離開這一行比較好

 o! 0

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #12 於: 2004-08-23 17:48 »
引述: "zterry26"
-o-.-o-
各位大大:
我看我還是趕快離開這一行比較好

 o! 0

為什麼呢!?
有挑戰才會有成長呀...不然像我一樣,每天朝九晚六回家育兒...
我刺激自己學習,也順便刺激大家學習..

如果你讀過 Apache 或 php 站上的 document,至少有五題可以
很快解出...
像第三題,你做一個 .htaccess 登入功能,再執行 phpinfo()
就會有答案了...(就知道 IE 送出什麼 HTTP Auth 內容了)

七八題是較難的,但七只要掛一個 DSO, 五行設定在 httpd.conf,
簡單的 mrtg 指令就可以做出來了,八則是要對程式較了解會好些
(php,shell,perl ...都可以)

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
出個練習給大家(二)--Apache
« 回覆 #13 於: 2004-08-26 18:55 »
小弟來試試看

1.
基本上如上面所提到的,檔案系統存取等等,就不多說了。


2.
在該目錄的設定裡加上 "php_admin_flag engine off" (PHP4以上)
例:
代碼: [選擇]

<Directory /http/path>
php_admin_flag engine off
</Directory>

AllowOverride 應該不需要設成None,因為php_admin_flag設定不會被.htaccess蓋過去。不過沒必要的話也不需要給使用者太多權限。
PHP3的話用"php3_engine off"
我記得沒錯的話PHP文件裡寫說php_admin_flag及php_admin_value不可以在.htaccess裡使用


3.
用Authorization:
例:
telnet localhost 80
代碼: [選擇]

GET /protected/ HTTP/1.0
Authorization: Basic <base64編碼後的使用者+密碼串>
<空行>


4.
我想大概可以用這樣:
代碼: [選擇]

SetEnvIfNoCase Referer www\.mysite\.com legit_link
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio #看需要而定
CustomLog logs/stolen_link_log combinedio env=!legit_link

有個缺點就是人家直接打網址的連線也會被記起來,因為不會有Referer
可能用grep過濾吧: grep -v \"-\" stolen_link_log


5.
不知道有沒有更好的方法,我想我會先把LogFormat裡加上 %V
例:
代碼: [選擇]

Logformat "%V %h %l %u %t \"%r\" %s %b" vhosts
CustomLog logs/access_log vhosts

之後再寫個簡易的shell script每天用cron執行來處裡
代碼: [選擇]

#!/bin/bash

logfile="/var/log/apache2/access_log" #紀錄擋
loglocation="/var/log/apache2"

for vdomain in `cut -f 1 $logfile | sort | uniq`; do
  grep $vdomain $logfile | gzip > $loglocation\/$vdomain-`date +%Y-%m-%d`_access.log.gz; #順便壓縮
  if [ $? != 0 ]; then
    echo "" | mail -s "處裡Apache紀錄檔時發生錯誤" root
    exit 1
  fi
done

echo -n "" > $logfile #沒問題的話把log擋清空



6.
Squid目前不熟不太曉得怎麼弄,Apache的mod_proxy好像效能滿差的安全性也不好。
我想我會用Pound來做,Pound就是專門為這個目的設計的。
一個基本的pound設定擋:
代碼: [選擇]

## Minimal sample pound.cfg
##
## see pound(8) for details


######################################################################
## global options:

User nobody
Group nobody
RootJail /chroot/pound

## allow PUT and DELETE also (by default only GET, POST and HEAD)?:
ExtendedHTTP 0

WebDAV 0

## Logging: (goes to syslog by default)
## 0 no logging
## 1 normal
## 2 extended
## 3 Apache-style (common log format)
LogLevel 1

## check backend every X secs:
#每三十秒檢查看哪一台Server應瑩無代誌
Alive 30

######################################################################
## listen, redirect and ... to:
ListenHTTP 0.0.0.0,80

#客戶端要求的URL字串,用regex
UrlGroup ".*"

#Web Server 1-5,最後的數字是指優先度,越小被使用的機率越大
BackEnd 192.168.0.1,80,1
BackEnd 192.168.0.2,80,1
BackEnd 192.168.0.3,80,2
BackEnd 192.168.0.4,80,3
BackEnd 192.168.0.5,80,4
EndGroup

至於Log可能把Log擋集中在一點吧


7.
可以用mod_watch
基本上裝好設好之後,用附的apache2mrtg.pl將Apache的virtual hosts設定擋轉成mrtg格式,再加入mrtg設定擋。
Apache的mod_watch設定:
代碼: [選擇]

<IfDefine WATCH>
    LoadModule watch_module extramodules/mod_watch.so
       <IfModule mod_watch.c>

          <Location /watch-info>
               SetHandler watch-info
          </Location>

          <Location /~*/watch-info>
               SetHandler watch-info
          </Location>

          <Location /watch-table>
               SetHandler watch-table
           </Location>
        </IfModule>
</IfDefine>

再來直接跑MRTG就好了
註:以上的設定方法跑Apache時要加"-D WATCH",mod_watch才會被載入。


8.
我想這做法跟第四題可能蠻類似的
基本上就是先用SetEnvIf把Nimda/CodeRed(Worm的細節我不太記得)的紀錄抓出來後再用CustomLog把資料丟給另一個程式處裡。
Cisco設備可能要用Telnet進去更改,iptables就更容易了。
下次有時間我再玩玩看

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #14 於: 2004-08-26 22:48 »
哇~Demonbane 兄一嗚驚人哦~
觀念很好哦...
1 ~~
2. 沒錯,正解
3. 我想您應是懂的,不過看到的人可能不懂,就是 username:passwd 的 base64 encoding, (type=basic)
4. 雖沒有實際幫您實驗看看,但觀念很正確
5. 這一題您應可以答的更好....再找找看更好的答案... google search cronlog
6. Pound 我看了一下似乎很不錯,不過可能不夠切合題意,我的用意大概是希望都用 apache 來解,當然效率/安全性 就看個人考量與對系統的了解而定了,而且 log 集中,除了 R-Proxy, 後面的 Round Robin 主機應也要能集中,全部相關的主機,都寫到同一位置,如此在日誌分析上較能夠統合.
所以 :
引用
至於Log可能把Log擋集中在一點吧

若您能再詳述可能會更好
7.嗯~不錯哦,完全看的出來您用過功的,不過因為您用的 dso 我沒用過,
不能下評論,但以這種方式來說,可能在 apache restart 後,一些 flow data 可能也會接著消失. (當然我沒用過您的方式,是不是這樣我就不知了,猜測而以),
http://sourceforge.net/project/showfiles.php?group_id=42812&package_id=34959
我個人是用這個,他可以做到寫入資料庫的動作(SQL 自己組),誰 (remote_host) . Request hostname,in/out bytes .
以 mod_account 運作,不管那一種 virtualhost 型式 (VirtualHost/VirtualDocumentRoot/Rewrite/Rewrite map 都可以支援)
8.我想重點是實作吧...

加油哦...您真的很不錯

ozakipw

  • 憂鬱的高中生
  • ***
  • 文章數: 190
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #15 於: 2004-08-29 01:05 »
Demonbane:

請問一下第七題的設定該如何套用到mrtg ??
可否詳細說明一下~~~感謝~~~
img]http://61.222.212.236/~test1/sing.jpg[/img]

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
出個練習給大家(二)--Apache
« 回覆 #16 於: 2004-08-29 10:36 »
代碼: [選擇]

請問一下第七題的設定該如何套用到mrtg ??
可否詳細說明一下~~~感謝~~~

假設你的的virtual host設定在httpd.conf裡然後mrtg設定擋是/etc/mrtg.conf
跑 apache2mrtg.pl httpd.conf >> /etc/mrtg.conf

mod_accounting雖然不錯,但有個小缺點 - 不支援 Apache2
話說回來由於問題是問用MRTG所以回答是用MRTG的方法,若真的需要作統計的話可以考慮用WebalizerAWStats來做,不需要外掛Apache模組(因為只是分析Apache log擋)而且統計非常詳細(到哪個檔案被存取了幾次,透過搜索引擎的用了哪幾個關鍵字等等)

olderboy

  • 憂鬱的高中生
  • ***
  • 文章數: 100
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #17 於: 2004-09-09 11:04 »
引用

7.
可以用mod_watch
基本上裝好設好之後,用附的apache2mrtg.pl將Apache的virtual hosts設定擋轉成mrtg格式,再加入mrtg設定擋。
Apache的mod_watch設定:
代碼: [選擇]

<IfDefine WATCH>
    LoadModule watch_module extramodules/mod_watch.so
       <IfModule mod_watch.c>

          <Location /watch-info>
               SetHandler watch-info
          </Location>

          <Location /~*/watch-info>
               SetHandler watch-info
          </Location>

          <Location /watch-table>
               SetHandler watch-table
           </Location>
        </IfModule>
</IfDefine>

再來直接跑MRTG就好了
註:以上的設定方法跑Apache時要加"-D WATCH",mod_watch才會被載入。


可否請教一下大大,在註:以上的設定方法跑Apache時要加"-D WATCH",mod_watch才會被載入這個意思不是很了解,在http://www.snert.com/Software/mod_watch-3.18/官網上看到的說明,也沒說明到這一點,還請大大指點一下了~

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #18 於: 2004-09-09 11:52 »
你要了解,在httpd.conf  LoadModules 的語法
如果有什麼
<IfDefine MOD_NAME>
...
</IfDefine>

你在啟動的時候,就可以用參數用控制是否要使用這個 DSO
如果你不用 ifDefine  (意指若httpd啟動參數 有 -DXXXXX)
你就不能由參數來控制 Apache Load 什麼 DSO
變成你要手動去改 httpd.conf 檔,如此而以

有些 RH 版本都會這樣做.所以 httpd -Dxxx -Dxxxx -Dxxxxxxx
用 ps 看時,會有一個很長的 process 名稱


此外, mod_accounting 的確不支援 2.x 版本,且看來也沒有在維
護了的感覺,建議還是不要用好,Demonbane 兄的建議是對的
(mod_accounting interval update 太短對 mysql 太傷)

飄然似雪

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
Re: 出個練習給大家(二)--Apache
« 回覆 #19 於: 2004-09-18 19:15 »
引述: "abelyang"

8. 如何在收到 IIS worm (ex:CodeRed..Nimda) 的連線後,即時更新 Cisco 設備的 ACL 或 iptables 阻檔該 IP 持續傳送 ?


這題小弟有點興趣,用Perl 來實作蠻好達成的。

(1) 利用Perl去寫出分析Apache的access_log
     若是CodeRed病毒則log裡面會有default.ida的字串
       若是Nimad    病毒則log裡面會有root.exe,cmd.exe等字串
       這樣就可以得到中毒電腦的IP清單

(2) 更新cisco設備的ACL
     有幾種方法:
       1. 用Perl程式產生Configure檔案,然後再用tftp方式更新
       2. 利用Perl的Net::Telnet::Cisco模組,模擬人們下指令的方式來更新ACL
     3. 利用Perl的Net::SNMP模組,用SNMP方式去更新ACL  (這小弟沒實作過,不太知道Cisco是否有相對應的MIB)

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #20 於: 2004-09-20 09:51 »
飄兄~
給您幾個個人的看法:
1.回頭看一下 SetEnvIfNoCase , 去 Apache 網站找一下
2. CustomLog 語法如何接程式
3. TFTP/Telnet/SNMP 皆可,但 SNMPSET 好像無法定義 ACL(我沒有見過這樣的 sample,但不見得沒有),TFTP 應不能達到主動,
所以通常就只有 telnet 較可行
4. ACL 特性問題,你得 no 掉那條 acl , 加那條之問題. 所以適當之處理是必要的

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
出個練習給大家(二)--Apache
« 回覆 #21 於: 2004-09-26 14:25 »
既然沒什麼人肯分享他們的心得小弟繼續來好了。

第六題使用Apache附的mod_rewrite及mod_proxy來作:

第一先把Log集中在一台,我用的是讓Apache把Log檔丟給syslog來處理,然後syslogd再將log傳給central logging server。
姑且不論傳統syslogd用遠端log的缺點等等,實作要網管依據環境、需求及資源發揮自己的想像力。
在Log Server(以下hostname為logserver)的/etc/syslog.conf裡先加入
代碼: [選擇]

#如果有*.info之類的話將local5.none加到例外,以免雙重紀錄
#facility使用local5跟6,local7好像在redhat/fedora系列拿來作開機紀錄
local5.info /var/log/apache_access_log
local6.* /var/log/apache_error_log

然後syslogd啟動的參數加上"-r"才可以接收網路來的log,最後killall -HUP syslogd
再來到我們親愛的Apache Server群(以下稱為server1 - 6),設定檔裡的Log設定為下:
代碼: [選擇]

#看需要而定
LogLevel warn

ErrorLog syslog:local6

#由於access_log不支援直接用syslog,只好交給/usr/bin/logger來處裡, -t APACHE只是加上標籤,看起來好看一點
CustomLog "|/usr/bin/logger -t APACHE -p local5.info" common


然後Server群的/etc/syslog.conf
代碼: [選擇]

local5.info @logserver
local6.* @logserver

killall -HUP syslogd && apachectl graceful (優雅的重開Apache)

最後到要當Proxy的主機,Apache作以下設定
代碼: [選擇]

#假設mod_rewrite跟mod_proxy都load好沒問題
RewriteEngine on
#下面這個會製造出超大量log,先拿來debug mod_rewrite,沒問題時記得要設回0
RewriteLogLevel 9
RewriteLog /var/log/apache2/rewrite_log

#叫mod_rewrite從/etc/httpd/rproxy.conf隨機挑一個值出來
#/etc/httpd/rproxy.conf內容如下:
# serverfarm server1|server2|server3|server4|server5|server6
RewriteMap servers rnd:/etc/httpd/rproxy.conf

#將全部request重寫,重點是後面的P
RewriteRule   ^/(.*)$   http://${servers:serverfarm}/$1  [P,L]

#mod_proxy部分,不用多說了,一目了然
ProxyRequests Off

ProxyPassReverse / http://server1/
ProxyPassReverse / http://server2/
ProxyPassReverse / http://server3/
ProxyPassReverse / http://server4/
ProxyPassReverse / http://server5/
ProxyPassReverse / http://server6/

ozakipw

  • 憂鬱的高中生
  • ***
  • 文章數: 190
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #22 於: 2004-10-05 17:06 »
引述: "Demonbane"
代碼: [選擇]

請問一下第七題的設定該如何套用到mrtg ??
可否詳細說明一下~~~感謝~~~

假設你的的virtual host設定在httpd.conf裡然後mrtg設定擋是/etc/mrtg.conf
跑 apache2mrtg.pl httpd.conf >> /etc/mrtg.conf

mod_accounting雖然不錯,但有個小缺點 - 不支援 Apache2
話說回來由於問題是問用MRTG所以回答是用MRTG的方法,若真的需要作統計的話可以考慮用WebalizerAWStats來做,不需要外掛Apache模組(因為只是分析Apache log擋)而且統計非常詳細(到哪個檔案被存取了幾次,透過搜索引擎的用了哪幾個關鍵字等等)


請問一下!!關於
apache2mrtg.pl httpd.conf >> /etc/mrtg.conf
要設定cron裡面??
img]http://61.222.212.236/~test1/sing.jpg[/img]

liming

  • 可愛的小學生
  • *
  • 文章數: 14
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #23 於: 2004-10-25 23:58 »
第八題~
我只想到snmpset~~^^

miFor

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
    • http://4dian.org
出個練習給大家(二)--Apache
« 回覆 #24 於: 2004-12-13 15:21 »
2,
<Location /path>
php_admin_flag engine off
AddType text/plain .php
</Location>

carasha

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #25 於: 2004-12-19 13:27 »
請問
我試著用以下的設定 :

<Directory /var/www/html>
   php_admin_flag engine off
</Directory>

httpd 重新啟動過了

可是結果我還是可以看的到 phpinfo() 顯示的資訊 , 它還是有將 .php 直譯耶

請問要怎麼做才能讓系統不要進行 .php 的直譯呢 ?

謝謝!

different

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #26 於: 2005-05-10 00:50 »
引述: "abelyang"


此外, mod_accounting 的確不支援 2.x 版本,且看來也沒有在維
護了的感覺,建議還是不要用好,Demonbane 兄的建議是對的
(mod_accounting interval update 太短對 mysql 太傷)


在設了
AccountingQueryFmt xxxx
AccountingDatabase mod_accounting
AccountingDatabaseDriver mysql
AccountingDBHost localhost 3306
AccountingLoginInfo test test
AccountingTimeUpdates 10
以後, 可以使用mysql去記錄..

在apache 1.3下, 因為mod_accounting可以寫入資料庫, 所以想測看看, 而且因為是使用mysql, 所以我可以把每台主機的virtualhost流量都寫入同一台server去做讀取, 方便管理, 可是當資料存入mysql以後, 要入何呼叫出裡面的資料給mrtg去存取, 並依照每個domain去跑,希望abelyang兄可以大概教學一下..這應該是如何自製數據給mrtg讀取的問題吧?
更新的頻率改怎麼設比較好, 還有如何將這些資料紀錄下來給mrtg使用?

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #27 於: 2005-05-10 01:59 »
mrtg 接程式的功課你要自己修練,不是嗎 ?
Target[vh1]: `echo "select in,out from vh='www.abc.com.tw'" | mysql mod_accounting`

siwei

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #28 於: 2005-08-01 19:36 »
各位請問一下:
我可以偵測local的virtual host的流量~
但~我也要偵測在其它台SERVER上的virtual host那我該如何作~~
才能達到別台主機virtual host流量偵測~~
謝謝~~

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
出個練習給大家(二)--Apache
« 回覆 #29 於: 2005-08-02 09:17 »
mod_watch 用
[root@log SIP]# mod_watch.pl
usage: mod_watch.pl [-f a,b] url

mod_accounting
用 mysql 的 SQL 語法即可