Hi all,
I am using nginx's Proxy module to retrieve images from Amazon S3. I
need to
be able to tell the Proxy module to retrieve a smaller sized file if a
bigger sized file doesnt exist. How can I do that?
For instance, my nginx configuration:
location / {
proxy_pass https://s3.amazonaws.com/my_bucket/;
error_page 415 = /empty;
}
Say I have image1_100.jpg on S3 then http://localhost/image1_100.jpg
works
fine. However http://localhost/image1_300.jpg wont work. I want to be
able
to ask nginx to request the
https://s3.amazonaws.com/my_bucket/image1_300.jpg file and if it doesnt
exist, request for iamge1_100.jpg file instead.
Thanks!
Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,231364,231364#msg-231364
on 2012-10-03 23:01
on 2012-10-04 11:46
Hello! On Wed, Oct 03, 2012 at 05:00:39PM -0400, wurb32 wrote: > error_page 415 = /empty; > } > > Say I have image1_100.jpg on S3 then http://localhost/image1_100.jpg works > fine. However http://localhost/image1_300.jpg wont work. I want to be able > to ask nginx to request the > https://s3.amazonaws.com/my_bucket/image1_300.jpg file and if it doesnt > exist, request for iamge1_100.jpg file instead. Use error_page 404 and proxy_intercept_errors, see http://nginx.org/r/proxy_intercept_errors. -- Maxim Dounin http://nginx.com/support.html
on 2012-10-04 18:09
Hi , I tried with error_page and proxy_intercept_errors and it is not working for me. Do you mind if you can give me an example configuration? Posted at Nginx Forum: http://forum.nginx.org/read.php?2,231364,231389#msg-231389
on 2012-10-05 14:34
Hello! On Thu, Oct 04, 2012 at 12:08:55PM -0400, wurb32 wrote: > Hi , > > I tried with error_page and proxy_intercept_errors and it is not working for > me. Do you mind if you can give me an example configuration? Trivial config with fallback to a predefined static file would look like: location / { error_page 404 = /fallback.jpg; proxy_pass http://upstream; proxy_intercept_errors on; } location = /fallback.jpg { # serve static file } If you want rewrite from /something_300.jpg to /something_100.jpg to happen automatically, for all possible values of "something", then config like this should work, using named location and rewrite: location / { error_page 404 = @fallback; proxy_pass http://upstream; proxy_intercept_errors on; } location @fallback { # if request ends with _300.jpg - rewrite to _100.jpg # and stop processing of rewrite rules, i.e. continue # with proxy_pass; else return 404 rewrite ^(.*)_300.jpg$ $1_100.jpg break; return 404; proxy_pass http://upstream; } Documentation: http://nginx.org/r/proxy_intercept_errors http://nginx.org/r/error_page http://nginx.org/r/location http://nginx.org/r/rewrite -- Maxim Dounin http://nginx.com/support.html
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.