Posso redirecionar ou proxy ** / para ** / index.html ao lado de uma rota proxy_pass'd?

1

Eu tenho o seguinte domínio apontado para o meu nginx my.web.server

Gostaria de fazer solicitações de proxy para /cdn para um host de arquivos localizado em file.host/myfiles

O arquivo de configuração é o seguinte:

server {
    listen 80;
    server_name my.web.server;

    location ^~ /cdn {      
        proxy_pass https://file.host/myfiles;
    }
}

Essa configuração faz o proxy com sucesso de todas as solicitações que chegam ao host do arquivo de destino, no entanto, não recebo redirecionamentos para index.html caso uma / ou rota seja inserida.

Um exemplo do que eu gostaria de alcançar está aqui:

my.web.server/cdn           => (proxy) file.host/myfiles/index.html
my.web.server/cdn/          => (proxy) file.host/myfiles/index.html
my.web.server/cdn/images    => (proxy) file.host/myfiles/images/index.html
my.web.server/cdn/images/   => (proxy) file.host/myfiles/images/index.html

my.web.server/cdn/**        => (proxy) file.host/myfiles/**/index.html
my.web.server/cdn/**/       => (proxy) file.host/myfiles/**/index.html

O ideal seria que você não visse o index.html na url e simplesmente procuraria esse caminho de arquivo, no entanto, se isso não for possível, redirecionar o usuário também seria bom.

Eu tenho tentado coisas como:

location ^~ /cdn {      
    proxy_pass https://file.host/myfiles;
    try_files $uri $uri/ $uri/index.html;
}

O que eu espero conseguir com isso é dizer ao nginx para "proxy aqui", tentar ver se existe um arquivo e, se nada aparecer, tente encontrar um index.html nessa rota.

    
por David Alsh 13.07.2018 / 05:24

0 respostas

Tags