Eu tenho um servidor nginx que envia erros 404 para o apache httpd em 1.1.1.1:8081. Como posso passar todos os cabeçalhos originais para o servidor de erros?
Eu tenho a seguinte configuração:
server {
error_page 404 = http://1.1.1.1:8081/404.php?remote=1;
}
Ao examinar cabeçalhos em 404.php, obtenho o ip original do cliente, mas nenhum cookie do cliente; Além disso, recebo o pedido de uri definido como 404.php?remote=1
e não o URL que causou o erro 404:
<?php
// 404.php file
file_put_content("log.txt", $_SERVER['REQUEST_URI'], FILE_APPEND); // :(
file_put_content("log.txt", $_SERVER['REMOTE_ADDR'], FILE_APPEND); // Ok
file_put_content("log.txt", $_COOKIE['MyCookie'], FILE_APPEND); // :( empty
?>
Não é bonito, mas uma solução possível é usar um local nomeado com uma passagem de proxy para o manipulador de erros e, em seguida, adicionar quantos cabeçalhos personalizados forem necessários com as informações desejadas. Isso significa personalizar o arquivo 404.php também.
Por exemplo: