On Mon, 23 Jan 2006, Andrew Velikoredchanin wrote:
Игорь, а можно-ли на mod_perl в nginx реализовать эмуляцию проверки наличия
файла и в зависимости от этого либо выдавать его напрямую (не из perl, а
средствами nginx), или обращаться на бэкэнд? Т.е. может-ли mod_perl в nginx
выступать в качестве эдакого диспетчера, который принимает решение откуда
нужна брать данный конкретный контент?
location / {
perl example::handler;
}
location /static/ {
alias /path/to/files/;
}
location /proxied/ {
proxy_pass http://127.0.0.1/;
}
------------
package example;
use strict;
use nginx;
sub handler {
my $r = shift;
my $uri = (-f $r->filename ? "/static" : "/proxied") . $r->uri;
$r->internal_redirect($uri);
return OK;
}
--------------
или вот так:
--------------
sub handler {
my $r = shift;
my $file = $r->filename;
if (! -f $file) {
$r->internal_redirect("/proxied" . $r->$uri);
return OK;
}
$r->header_out("Content-Length", -s _);
$r->send_http_header;
return OK if $r->header_only;
$r->sendfile($file);
return OK;
}
Игорь Сысоев
http://sysoev.ru