我有 nginx 服务器在 1.1.1.1:8081 向 apache httpd 发送 404 错误。如何将所有原始标头传递给错误服务器?
我有以下配置:
server {
error_page 404 = http://1.1.1.1:8081/404.php?remote=1;
}
检查 404.php 中的标头时,我得到客户端原始 ip,但没有来自客户端的 cookie;另外,我将请求 uri 设置为404.php?remote=1
而不是导致 404 错误的 url:
<?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
?>
这并不漂亮,但一种可能的解决方案是使用命名位置和代理传递给您的错误处理程序,然后根据需要添加尽可能多的自定义标头以及所需的信息。这也意味着自定义 404.php 文件。
例如: