Disabling file resuming with X-Accel / Removing headers

Hello,

I have a config using fastcgi and different locations

FastCGI is set as internal:
location ~ .php$ {
internal;

fastcgi_pass 127.0.0.1:9000;

fastcgi_send_timeout 120;
fastcgi_read_timeout 120;

fastcgi_index index.php;
include fastcgi_params;

}

Services (just two) are rewritten.
location /get {
rewrite ^ /get.php last;
}

I am using nginx’s X-Accel headers, and I want to disable file
resuming. That implies:

  • suppresing output header “Accept-Ranges: bytes”
  • suppresing input header “Range”

I am now trying to do the first. Apparently, headers_more won’t work
when put in the location /get, or for location /get.php.
(more_clear_headers ‘Accept-Bytes’;).

There is no luck using Lua either, in many different ways. I even
tried putting Lua before the fcgi, and it does allow adding headers,
but not replacing or resetting them. As if this header was set a lot
later in the process (I think so, because it’s added when X-Accel is
set internally, therefore after fcgi is done processing).

Anyone have any pointers? I’m running out of ideas now.

Thank you a lot for your time

Adrián

Yesterday Mar 6, 2012 at 23:56 Adri?n Navarro wrote:

tried putting Lua before the fcgi, and it does allow adding headers,
but not replacing or resetting them. As if this header was set a lot
later in the process (I think so, because it’s added when X-Accel is
set internally, therefore after fcgi is done processing).

Just set max_ranges to zero:
http://nginx.org/en/docs/http/ngx_http_core_module.html#max_ranges


WNGS-RIPE

Thank you everyone for your answers.

max_ranges 0; works great if set in the main server {} directive.
Sadly, when put inside a location directive, it will not work. The
same applies for more_clear_headers.

The other thing I’m seeing is that while headers with max_range for
the whole directive does return correct headers, chrome still allows
pausing.

I better get some sleep and keep digging tomorrow.

Thank you, I’ll follow up soon.

On Wed, Mar 7, 2012 at 12:24 AM, Francis D. [email protected]
wrote:

fastcgi_param HTTP_RANGE “”;
http://mailman.nginx.org/mailman/listinfo/nginx

Adrián Navarro / (+34) 608 831 094

On Tue, Mar 06, 2012 at 11:56:32PM +0100, Adrin Navarro wrote:

Hi there,

I am using nginx’s X-Accel headers, and I want to disable file
resuming. That implies:

  • suppresing output header “Accept-Ranges: bytes”
  • suppresing input header “Range”

Anyone have any pointers? I’m running out of ideas now.

Completely untested, and not a direct answer to “file resuming”, but you
asked for pointers, so maybe…

If you want a response header from a fastcgi process not to be
delivered to the client, see fastcgi_hide_header, for example at
http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_hide_header

If you want a request header not to be sent to a fastcgi process, set
the matching parameter yourself to empty:

fastcgi_param HTTP_RANGE “”;

Good luck with it,

f

Francis D. [email protected]

max_ranges 0; worked well but only at server directive.

I have finally decided to use different server{} entries (subdomains)
for the different cases.

Thank you

On Wed, Mar 7, 2012 at 12:45 AM, Adrián Navarro [email protected]
wrote:

I better get some sleep and keep digging tomorrow.

  • suppresing output header “Accept-Ranges: bytes”

nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx


Adrián Navarro / (+34) 608 831 094


Adrián Navarro / (+34) 608 831 094

Hello!

On Wed, Mar 07, 2012 at 06:03:54PM +0100, Adrián Navarro wrote:

max_ranges 0; worked well but only at server directive.

I have finally decided to use different server{} entries (subdomains)
for the different cases.

It should work at location level as well, though please make sure
to specify it in location where response is in fact returned, i.e.
where your X-Accel-Redirect’s are processed.

Maxim D.

Hello!

On Thu, Mar 08, 2012 at 01:03:42AM +0100, Adrián Navarro wrote:

Where should that be?

I have a location for php scripts (all to fastcgi) figuring as internal.

Another one (location /get) which rewrites to the PHP file (therefore
only accessible via rewrite, as PHP is internal otherwise).

A location /get.php won’t work either. I tried using matches inside
the fcgi directives to add a parameter but didn’t work either, in any
case…

Unless you have anything more specific, this would be “location /”.
If you don’t have “location /” either (which is not recommended),
this would be implicit location with a settings set on server level.

From what you say I tend to assume you don’t have “location /”,
and that’s why it only works at server level for you.

See docs here for details:

http://nginx.org/en/docs/http/request_processing.html
http://nginx.org/en/docs/http/ngx_http_core_module.html#location

Maxim D.

Where should that be?

I have a location for php scripts (all to fastcgi) figuring as internal.

Another one (location /get) which rewrites to the PHP file (therefore
only accessible via rewrite, as PHP is internal otherwise).

A location /get.php won’t work either. I tried using matches inside
the fcgi directives to add a parameter but didn’t work either, in any
case…

On Wed, Mar 7, 2012 at 6:36 PM, Maxim D. [email protected] wrote:

to specify it in location where response is in fact returned, i.e.

max_ranges 0; works great if set in the main server {} directive.

Anyone have any pointers? I’m running out of ideas now.

[email protected]
Adrián Navarro / (+34) 608 831 094


nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx


nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx


Adrián Navarro / (+34) 608 831 094

Hmm, it’s true that there is no location / directive (I think).

In such case, does it mean that I must set one to have these options
work at other /location (including rewrites) directives?

Thank you

On Fri, Mar 9, 2012 at 4:27 PM, Maxim D. [email protected] wrote:

same applies for more_clear_headers.

On Tue, Mar 06, 2012 at 11:56:32PM +0100, Adrián Navarro wrote:
Completely untested, and not a direct answer to “file resuming”, but you


[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx


Adrián Navarro / (+34) 608 831 094

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs