Хитрое перенаправление по 404 ошибке
Andrew Velikoredchanin
andrew at rodtext.ru
Thu Jun 23 14:06:05 MSD 2005
Igor Sysoev wrote:
> On Thu, 23 Jun 2005, Andrew Velikoredchanin wrote:
>
>> Вот такая задача есть:
>>
>> На странице отображается картинка.
>> Она берется с бэкэндов с их перебором пока не найдется.
>> Если она не нашлась - нужно по 404 ошибке перенаправить запрос на
>> бэкэнд на cgi скрипт pic404.cgi на бэкэнде, который должен выдать
>> картинку в зависимости от url оригинальной картинки.
>>
>> Это возможно?
>>
>> Больше всего меня интересует, получу-ли я в pic404.cgi оригинальный урл?
>
>
> Оригинальный URI живёт в переменной $request_uri. Её можно передавать
> с помощью proxy_set_header и fastcgi_param.
>
> error_page 404 /pic404.cgi;
> location = /pic404.cgi {
> internal;
> proxy_pass http://backend/pic404.cgi;
> proxy_set_header X-URI $request_uri;
> }
Что-то не получается. :(
Вот примерно что в конфиге фронтэнда:
location / {
proxy_pass http://back.cluster/;
proxy_next_upstream error timeout invalid_header http_500 http_404;
...
}
location /thumbnails/ {
proxy_pass http://back.cluster:81/thumbnails/;
proxy_next_upstream error timeout invalid_header http_500 http_404;
expires 30d;
error_page 404 /pic404.cgi;
...
}
В таком варианте при запросе несуществующей картинки из /thumbnails/ он
почему-то не переходит на 404 страницу на фронтэнде, а выдает 404
страницу, которую выдал бэкэнд (я это заметил, т.к. на бэкэнде у меня
стоит старая версия nginx, которая и должна выдавать эти картинки).
Это глюк или я что-то не так прописал?
--
Best regards, Andrew Velikoredchanin
More information about the nginx-ru
mailing list