2012-11-01 41 views

回答

0

我認爲你可能會試圖把這個問題複雜化,你可以不只是做下面的事情嗎?

$SERVER["socket"] == 「192.168.1.1:80″ { 
    accesslog.filename = "/var/log/lighttpd/192.168.1.1-access.log" 
} 

您也提到你有麻煩include_shell嘗試以下

lighttpd.conf

include_shell "/etc/lighttpd/scripts/servername.sh" 
accesslog.filename = "/var/log/lighttpd/" + var.servername + "-access.log" 

腳本/ servername.sh - 主機名

#!/bin/bash 
echo 'var.servername="'$(uname -n)'"' 

OR

腳本/ servername.sh - 爲IP地址

#!/bin/bash 
echo 'var.servername="'$(/sbin/ifconfig | sed -n '2 p' | awk '{print $2}' | sed s/addr://g)'"' 

(改sed和awk的參數去獲得正確的IP爲您在多個接口)

這會給你你正在尋找的東西。

或者只是cat accesslog.filename = "/var/log/lighttpd/" + uname -n + "-access.log"到配置文件的末尾,以獲得便宜和骯髒的解決方案。

+0

我有200臺機器在負載平衡器後面,有n個虛擬主機。 –

+0

我已經添加了更完整的問題答案。如果這仍然不適合您的目的,您可以編寫腳本來重命名文件,因爲它們是從相應的服務器下載/收集的。 –