Proxy configuration

Maxim Dounin mdounin at mdounin.ru
Wed Aug 17 14:29:06 UTC 2011


Hello!

On Wed, Aug 17, 2011 at 12:01:18PM +0000, Iry Witham wrote:

>    I am working on an issue with Nginx, using it as the proxy 
>    server for our internal Galaxy server.  We are attempting to 
>    use the IGV module in Galaxy and when we use the option to 
>    view BAM files in the browser we get a Java Runtime error.  
>    So far the only way around the error is to modify the URL to 
>    be http://galaxy:8080/.  I am able to use the other available 
>    options just fine.  I have been involved in conversations 
>    with both Galaxy-Dev and IGV support.  The later suggested 
>    that I mention the following:
> 
> “The issue I have seen with some proxy servers is that
> they rewrite the request header and in the process remove a "range-byte"
> request header.   This is critical and should not be removed.”

There is no such thing as "range-byte" request header.  Probably 
they were taking about "Range" request header.  It is not removed 
by nginx by default (unless you use proxy_cache, and you config 
suggests you aren't).

On the other hand, this means that the app in question fails to
correctly use http.  Http clients may not rely that range request
will be satisfied by range response, full response is perfectly 
valid per http protocol and clients should handle this.

>     Here is a copy of our nginx.conf file.  I removed the 
>     trailing portion since it is commented out:

[...]

> Is there something that I am missing?  Any assistance would be 
> greatly appreciated.

Config looks ok.  You may try to produce debug log as described at 
[1], but I don't expect it to show anything.  Any perfectly valid 
thing may cause app to misbehave (especially keeping in mind the 
app known to not handle http properly, see above), and it's not 
really possible to say which one without debugging app in 
question.

You may also want to trace what's happening on the wire with nginx 
compared to direct connection.

Quick things to try also include:

1. Disable keepalive with "keepalive off;".  There have been 
reports here that some apps (Java apps, if I recall correctly) 
doesn't understand chunked responses despite sending HTTP/1.1 
requests.  (Disabling keepalive will also disable use of chunked 
encoding.)

2. Disable gzip with "gzip off;".

[1] http://wiki.nginx.org/Debugging

Maxim Dounin



More information about the nginx-devel mailing list