Bad default for proxy_cache_key

Hello all,

I stucked a while with a config problem where proxy_cache_key default
value
was $scheme$proxy_host$uri$is_args$args".

Then I realized it really didn’t make. A better value
$scheme$host$uri$is_args$args" is much more reasonable, as the reverse
proxy requests comes from many server {} with multiple server name and
aliases.

Shouldn’t the default be changed?

cheers,
bráulio


“Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua
ideologia. Morra por sua ideologia” P.R. Sarkar

EITA - Educação, Informação e Tecnologias para Autogestão

“Paramapurusha é meu pai e Parama Prakriti é minha mãe. O universo é meu
lar e todos nós somos cidadãos deste cosmo. Este universo é a imaginação
da
Mente Macrocósmica, e todas as entidades estão sendo criadas,
preservadas e
destruídas nas fases de extroversão e introversão do fluxo imaginativo
cósmico. No âmbito pessoal, quando uma pessoa imagina algo em sua mente,
naquele momento, essa pessoa é a única proprietária daquilo que ela
imagina, e ninguém mais. Quando um ser humano criado mentalmente caminha
por um milharal também imaginado, a pessoa imaginada não é a propriedade
desse milharal, pois ele pertence ao indivíduo que o está imaginando.
Este
universo foi criado na imaginação de Brahma, a Entidade Suprema, por
isso
a propriedade deste universo é de Brahma, e não dos microcosmos que
também
foram criados pela imaginação de Brahma. Nenhuma propriedade deste
mundo,
mutável ou imutável, pertence a um indivíduo em particular; tudo é o
patrimônio comum de todos.”
Restante do texto em

Hello!

On Sun, Jun 29, 2014 at 06:15:56PM -0300, Bráulio Bhavamitra wrote:

Shouldn’t the default be changed?
The default key is to identify resources nginx requests from
upstream servers. That is, these are the same:

server {
    server_name bar;

    location / {
        proxy_pass http://foo.example.com;
    }
}

server {
    server_name bazz;

    location / {
        proxy_pass http://foo.example.com;
    }
}

While these are different:

server {
    server_name foo;

    location / {
        set $backend "foo.example.com";

        if ($user_is_admin) {
            set $backend "admin.example.com";
        }

        proxy_pass http://$backed;
    }
}

If in your case multiple such resources are equal or different
based on other factors (likely, due to “proxy_set_header Host …”
in your configuration), you are free to change proxy_cache_key
accordingly.


Maxim D.
http://nginx.org/

Hum, a documentation of this use case is recommended. Personally, for me
it
is completely unknown and uncommon.

Also, isn’t caching entirely related to the URL the user used, and has
nothing to do with the backend host?

On Mon, Jun 30, 2014 at 8:48 PM, Maxim D. [email protected]
wrote:

Then I realized it really didn’t make. A better value
server_name bar;
proxy_pass http://foo.example.com;
set $backend “foo.example.com”;
If in your case multiple such resources are equal or different
[email protected]
nginx Info Page


“Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua
ideologia. Morra por sua ideologia” P.R. Sarkar

EITA - Educação, Informação e Tecnologias para Autogestão

“Paramapurusha é meu pai e Parama Prakriti é minha mãe. O universo é meu
lar e todos nós somos cidadãos deste cosmo. Este universo é a imaginação
da
Mente Macrocósmica, e todas as entidades estão sendo criadas,
preservadas e
destruídas nas fases de extroversão e introversão do fluxo imaginativo
cósmico. No âmbito pessoal, quando uma pessoa imagina algo em sua mente,
naquele momento, essa pessoa é a única proprietária daquilo que ela
imagina, e ninguém mais. Quando um ser humano criado mentalmente caminha
por um milharal também imaginado, a pessoa imaginada não é a propriedade
desse milharal, pois ele pertence ao indivíduo que o está imaginando.
Este
universo foi criado na imaginação de Brahma, a Entidade Suprema, por
isso
a propriedade deste universo é de Brahma, e não dos microcosmos que
também
foram criados pela imaginação de Brahma. Nenhuma propriedade deste
mundo,
mutável ou imutável, pertence a um indivíduo em particular; tudo é o
patrimônio comum de todos.”
Restante do texto em

Hello!

On Tue, Jul 29, 2014 at 04:49:23PM -0300, Bráulio Bhavamitra wrote:

Hum, a documentation of this use case is recommended. Personally, for me it
is completely unknown and uncommon.

Also, isn’t caching entirely related to the URL the user used, and has
nothing to do with the backend host?

The caching is related to the URL of the resource, and that’s what
you write in “proxy_pass”. The original URL of a resource
requested by the client in many cases has nothing to do with the
URL of the resource nginx requests with proxy_pass. They match
only in very simple configurations when you just proxy everything
without any modifications in nginx.


Maxim D.
http://nginx.org/