0

loadbalncer の背後に複数のサーバーがあり、lighttpd の accesslog で hosname としてプレフィックスにアクセスする方法で、各マシンのアクセス ログが必要です。

例えば ​​:

192.168.1.1-access.log 192.168.1.2-access.log

include_shellパラメータを使用してスクリプトを作成しようとしましhostname.shたが、目的を果たせません。

4

1 に答える 1

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"

scripts/servername.sh - ホスト名用

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

また

scripts/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"

于 2012-11-01T11:26:19.237 に答える