Configuração de proxy reverso Nginx para cadvisor

0

Estou tentando configurar o nginx como proxy para uma instância do docker do cadvisor em execução na porta do host 8000.

Eu tenho a seguinte configuração:

upstream cadvisor {
    server 127.0.0.1:8000;
}
...
...
server {
    ...
    ...
    location /cadvisor {
        rewrite ^([^.]*[^/])$ $1/ permanent;
        rewrite ^/cadvisor$ /cadvisor/ permanent;
        rewrite ^/cadvisor(/.*) $1 break;
        auth_basic "Restricted"; #For Basic Auth
        auth_basic_user_file /etc/nginx/.htpasswd; #For Basic Auth
        proxy_pass http://cadvisor;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_redirect ~^/(.*)/ /cadvisor/$1;
    }
    ...
    ...
}

Isso funciona para todos os URLs, exceto o seguinte (que é um dos links que o cadvisor gera) link

Isso ocorre provavelmente porque as barras duplas antes do 'docker' na URL atrapalham o caminho css. Meu problema seria resolvido se eu pudesse redirecionar esses URLs para a versão de barra única do URL (ou seja, link )

Existe alguma maneira de redirecionar o URL para uma única versão de barra?

    
por khattam 07.05.2016 / 21:56

1 resposta

0

A diretiva rewrite parece operar em uma versão normalizada do URI que não vê sequências de duplo / . É possível corrigir sua situação / dupla operando na variável $request_uri :

if ($request_uri ~ ^(.*)//(.*)$) { return 302 $1/$2; }

Veja esta advertência sobre a diretiva if .

    
por 08.05.2016 / 17:20

Tags