proxy_pass and $content_type
Cedric Jeanneret
cedric.jeanneret at camptocamp.com
Tue Sep 15 17:05:56 MSD 2009
Hello,
Well, if it was so simple... No, S3 returns 200 whatever happens. it's either an xml with a listing, or the file....
So proxy_intercept_errors won't work.
Ygor: well, lenny has legacy stable, and there's no backport.... and it seems that we can't (or won't) use other sources than the official debian ones. Any other way ?
For now, we're filtering upstream in varnish...
Best regards,
C.
PS: sorry for my later mail (nginx-0.6.32-3: proxy_pass and $content_type), it was dupple because of my gmail account.... you can forget it -.-
On Tue, 15 Sep 2009 16:33:19 +0400
Maxim Dounin <mdounin at mdounin.ru> wrote:
> Hello!
>
> On Tue, Sep 15, 2009 at 01:40:06PM +0200, Cedric Jeanneret wrote:
>
> > Hello all,
> >
> > We're wanting to use nginx as a proxy between a varnish and a S3 storage. We're using debian lenny, nginx version is 0.6.32-3.
> >
> > What we're dowing:
> >
> > server {
> > location / {
> > proxy_pass ...
> > if ($content_type !~* "image/") {
> > return 403
> > }
> > }
> > }
> >
> > What happens ? well, 403 for all. We put in log "$content_type", and saw it's set to "-".
>
> You are testing *request* Content-Type, not response. It's
> unlikely to be set at all for most requests.
>
> Additionally, this check happens at rewrite phase - i.e. before
> anything was got from upstream.
>
> >
> > Is it normal? Is there another way to filter by content type?
> > Our final goal is:
> > S3 sends either the file if it can find it, or an XML (so a content_type "text/xml" or smth like that). We don't want to give the xml, as it contains S3 bucket name...
>
> I believe S3 responds with appropriate http status code on errors,
> and you are able to intercept them via proxy_intercept_errors +
> error_page.
>
> See
>
> http://wiki.nginx.org/NginxHttpProxyModule#proxy_intercept_errors
>
> for details.
>
> Maxim Dounin
>
>
> >
> > If any of you has an idea/fixe/workaround...
> >
> > Thanks in advance
> >
> > Best regards,
> >
> > C.
> >
> >
> > --
> > Cédric Jeanneret | System Administrator
> > 021 619 10 32 | Camptocamp SA
> > cedric.jeanneret at camptocamp.com | PSE-A / EPFL
>
>
>
--
Cédric Jeanneret | System Administrator
021 619 10 32 | Camptocamp SA
cedric.jeanneret at camptocamp.com | PSE-A / EPFL
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx/attachments/20090915/e0abe4bf/attachment.pgp>
More information about the nginx
mailing list