2011年2月26日星期六

Re: Passing variables to access_log, error_log names

On 26 Fev 2011 23h01 WET, mdounin@mdounin.ru wrote:

> Hello!
>
> On Sat, Feb 26, 2011 at 04:49:48PM -0500, ajgon wrote:
>
>> Hello,
>>
>> I am configuring an automagic virtual hosting on my private
>> machine, to serve myself projects which I currently work
>> on. Configuration I'm using is like this:
>>
>> server {
>> listen 80;
>> server_name ~^(www\.)?(?P[^.]+).mydomain.com$;
>
> Just a side note: forum is still eating data (originally
> "P<project>" was here), you may want to consider using mailing
> list directly instead.
>
>> root /home/ajgon/htdocs/$project;
>> access_log /var/log/nginx/$project.mydomain.com.access_log main;
>> error_log /var/log/nginx/$project.mydomain.com.error_log info;
>> include lang/php;
>> }
>>
>> Everything is working as expected - except one thing. I'm getting
>> two log files with following names:
>> /var/log/nginx/$project.mydomain.com.access_log
>> /var/log/nginx/$project.mydomain.com.error_log for any Vhost.
>>
>> Is there any sollution to make nginx parse the variable and set
>> proper log name?
>
> There is no variables support in error_log directive (and it's
> unlikely to appear), so "...error_log" file is expected. Use
> common error_log for all vhosts instead.
>
> Variables in access_log should work as of 0.7.4+. On the other
> hand, named captures in regular expressions only supported in
> 0.8.25+. Are you sure you see "...access_log" file? Which
> version you are using?

I just tried:

set $test foo;
access_log /var/log/nginx/$test.domain_access.log;
error_log /var/log/nginx/domain_error.log;

And no access log entry is registered whatsoever. I'm using 0.9.4.

Can you elaborate on your 'Variables in access_log should work'?
Do you mean it should work in a dirname and not on a filename? E.g.:

access_log /var/log/nginx/$test/domain_access.log;

Thank you,
--- appa

_______________________________________________
nginx mailing list
nginx@nginx.org
http://nginx.org/mailman/listinfo/nginx

没有评论:

发表评论