mdounin at mdounin.ru
Wed Aug 17 14:29:06 UTC 2011
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
, 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
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
2. Disable gzip with "gzip off;".
More information about the nginx-devel