我認爲你可能會試圖把這個問題複雜化,你可以不只是做下面的事情嗎?
$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"
到配置文件的末尾,以獲得便宜和骯髒的解決方案。
我有200臺機器在負載平衡器後面,有n個虛擬主機。 –
我已經添加了更完整的問題答案。如果這仍然不適合您的目的,您可以編寫腳本來重命名文件,因爲它們是從相應的服務器下載/收集的。 –