atom feed4 messages in ru.sysoev.nginxRe: Recursive Error Pages or how to t...
FromSent OnAttachments
Elena ZwetkowJun 21, 2010 11:56 pm 
Igor SysoevJun 22, 2010 12:02 am 
Igor SysoevJun 22, 2010 12:04 am 
Elena ZwetkowJun 22, 2010 12:29 am 
Subject:Re: Recursive Error Pages or how to try more than one location
From:Igor Sysoev (ig@sysoev.ru)
Date:Jun 22, 2010 12:02:11 am
List:ru.sysoev.nginx

On Tue, Jun 22, 2010 at 08:57:15AM +0200, Elena Zwetkow wrote:

Hello list,

i have to store images on 3 servers. Image processing runs on all of the 3
servers and spreading the images over the 3 servers is a background task, so it
takes some time the images are available on all 3 servers.

Nginx should try to fetch the image from an other server. But my configuration
only works 1 level depth. Nginx never trys to fetch from location @s2 or @s3.

How can i configure nginx trying to find the image on all 3 server?

Any hints are welcome.

You should add

proxy_intercept_errors off;

in @s2 and @s3.

However, there is a way to handle files in one location:

proxy_next_upstream ... http_404 ...;

Thanks

server {

listen 80; root /var/www/nginx-default;

recursive_error_pages on;

location @s1 { internal; proxy_pass http://192.168.0.10; proxy_intercept_errors off; proxy_store on; proxy_store_access user:rw group:rw all:rw; proxy_temp_path /var/www/nginx-default/tmp; root /var/www/nginx-default; recursive_error_pages on; error_page 404 502 = @s2; }

location @s2 { internal; proxy_pass http://192.168.0.20; proxy_store on; proxy_store_access user:rw group:rw all:rw; proxy_temp_path /var/www/nginx-default/tmp; root /var/www/nginx-default; recursive_error_pages on; error_page 404 502 = @s3; }

location @s3 { internal; proxy_pass http://192.168.0.30; proxy_store on; proxy_store_access user:rw group:rw all:rw; proxy_temp_path /var/www/nginx-default/tmp; root /var/www/nginx-default; recursive_error_pages on; error_page 404 = /404.htm; }

location ~* \.(jpg|jpeg)$ { root /var/www/nginx-default; error_page 404 = @node1; } }