Como evitar nginx de subdiretórios específicos de proxy reverso

8

No Apache, você pode ProxyPassar tudo, exceto um ou mais subdiretórios (com "!").

    ProxyPass /subdir !
    ProxyPass / http://localhost:9999/

Qual é o equivalente do Nginx?

Meu primeiro palpite obviamente não está funcionando:

 location /subdir {
      root /var/www/site/subdir;
  }

 location / {
      proxy_pass http://localhost:9999/ ;
  }
    
por Falken 06.07.2012 / 16:56

1 resposta

10

Você pode vincular o proxy_pass a EXATAMENTE o caminho que você gosta, como este

location = / {
    proxy_pass http://localhost:9999/;
}

Isso garante que nenhum outro caminho seja passado, mas /

OR

você pode usar esta sintaxe apenas para os subdiretórios a serem correspondidos

location ^~ /subdir {
     alias /var/www/site/subdir;
}

location / {
    proxy_pass http://localhost:9999/ ;
}

O ^~ corresponde ao subdir e, em seguida, pára a procura, pelo que o / não será executado. É descrito aqui .

    
por 06.07.2012 / 16:59