Problem with inheriting fastcgi params

Cliff Wells cliff at develix.com
Sat Jun 6 01:10:31 MSD 2009


On Fri, 2009-06-05 at 13:49 -0700, Michael Shadle wrote:
> On Fri, Jun 5, 2009 at 1:17 PM, Maxim Dounin <mdounin at mdounin.ru> wrote:
> > Hello!
> >
> > On Fri, Jun 05, 2009 at 12:36:36PM -0700, Michael Shadle wrote:
> >
> >> I have my normal fastcgi params in my main nginx.conf file, under server {}
> >>
> >> i.e.:
> >>
> >> fastcgi_param QUERY_STRING $query_string;
> >> fastcgi_param REQUEST_METHOD $request_method;
> >> fastcgi_param CONTENT_TYPE $content_type;
> >> fastcgi_param CONTENT_LENGTH $content_length;
> >> fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
> >> fastcgi_param SCRIPT_NAME $fastcgi_script_name;
> >> fastcgi_param REQUEST_URI $request_uri;
> >> fastcgi_param DOCUMENT_URI $document_uri;
> >> fastcgi_param DOCUMENT_ROOT $document_root;
> >> fastcgi_param SERVER_PROTOCOL $server_protocol;
> >> fastcgi_param GATEWAY_INTERFACE CGI/1.1;
> >> fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
> >> fastcgi_param REMOTE_ADDR $remote_addr;
> >> fastcgi_param REMOTE_PORT $remote_port;
> >> fastcgi_param SERVER_ADDR $server_addr;
> >> fastcgi_param SERVER_PORT $server_port;
> >> fastcgi_param SERVER_NAME $http_host;
> >> fastcgi_ignore_client_abort on;
> >> fastcgi_buffers 32 8k;
> >> fastcgi_index index.php;
> >>
> >>
> >> The problem is, whenever I want to add a variable (maybe override too,
> >> I forget) it seems to clear all the other ones out:
> >>
> >>                location ~ \.php$ {
> >>                         fastcgi_pass 127.0.0.1:11003;
> >>                         fastcgi_param HTTPS on;
> >>                 }
> >>
> >> Now, only fastcgi_param HTTPS is set. no more SCRIPT_FILENAME so it's broken.
> >
> > It's expected and documented behaviour.  All array-type settings
> > behave like this: they are inherited from upper levels only if
> > none defined at this particular level.
> 
> So instead of appending the array (or replacing an existing index) I
> am essentially resetting the array completely?
> 
> Is there a usage model where it makes sense that this should be a
> supported behavior? Logically it seems like it should be supported,
> but I guess under the hood it's a one line change or a very major
> change.

I believe the idea is that inheritance can lead to subtle side-effects
in large configurations.   You might include a several files and not
realize that one of them is affecting the configuration several
files/locations away.

Cliff

-- 
http://www.google.com/search?q=vonage+sucks






More information about the nginx mailing list