Como usar corretamente o suporte de eco nginx para responder com uma página 504 embutida?

2

Estou tentando responder com uma página 504 personalizada usando o suporte de eco nginx, mas, por algum motivo estranho, quando isso está ativo, o navegador faz o download da resposta em vez de abri-la.

server {
    listen   80;
    proxy_intercept_errors on;
    server_name  localhost;

    location @fallback {
        add_header Content-Type "text/html; charset=UTF-8";
        add_header Content-Disposition 'inline; filename="504.html"';

        # when this line is enabled I get the download behavior!
        # when this is not active, I get a 200 response, which is not desired                      
        echo_status 504;

        echo "<!DOCTYPE html>";
        echo "<html lang='en'>";
        echo "  <head>";
        echo "    <meta charset='utf-8'>";
        echo "    <title>Backend is down</title>";
        echo "  </head>";
        echo "  <body>";
        echo "    Backend service is offline, please retry in few minutes. $echo_timer_elapsed";
        echo "  </body>";
        echo "</html>";
    }

    location / {
        error_page 502 504 = @fallback;
        proxy_connect_timeout   10s;
        proxy_pass        http://google.com:1234;
    }
}
    
por sorin 23.01.2014 / 14:01

1 resposta

1

Hey, eu estava testando o módulo echo hoje com uma configuração semelhante para um "403" personalizado ...

Eu não estava conseguindo ler os documentos corretamente e pesquisar no Google me levou a uma pergunta.

Se: link

Em vez de usar add_header Content-Type, tente:

default_type "text / html; charset = UTF-8";

Não tenho certeza se o add_header deve funcionar, mas não é mencionado no manual do módulo. [edit]: também o default_type provavelmente já está definido no conf global nginx para: default_type application / octet-stream; Eu estava esquecendo isso, então ainda é melhor mudá-lo aqui se você quiser ver uma resposta no navegador. [/ Edit]

* Observação: você ainda deve manter o "echo_status 504;" se você não quiser ver a resposta "200".

    
por 24.05.2014 / 19:57

Tags