如何显示在导致 NGINX 错误页面的请求中发送的 headers?
How can I display the headers sent in the request that results in an NGINX error page?
我在我的 Nginx location
块中为错误页面设置了自定义位置(带有最小 HTML 文件)。函数`位置是:
location / {
#try_files $uri $uri/ =404;
proxy_set_header X-Real-IP $remote_addr;
error_page 400 404 500 502 503 504 /test_error.html;
}
客户端应该发出一个 X-forwarded-for header 并且 IP 地址作为冒号右侧的值。但是我怎样才能在该错误页面上获得错误状态代码和 headers 呢?我是 运行 虚拟盒子上的测试环境。
通常它是后端 Web 应用程序作业来处理请求 HTTP headers,即使通过 JavaScript 代码,它们也不适用于 HTML 页面。但是有一个使用 Server Side Includes 和 HTML 错误页面的解决方法:
location = /test_error.html {
internal;
ssi on;
root /path/to/html;
# or 'alias /path/to/html/test_error.html;'
}
现在在你的 HTML 错误页面你可以使用 SSI echo
命令来输出 nginx 变量:
<head>
...
</head>
<body>
<p>HTTP status is <!--# echo var="status" --></p>
<p>X-Forwarded-For header value is <!--# echo var="http_x_forwarded_for" --></p>
</body>
我在我的 Nginx location
块中为错误页面设置了自定义位置(带有最小 HTML 文件)。函数`位置是:
location / {
#try_files $uri $uri/ =404;
proxy_set_header X-Real-IP $remote_addr;
error_page 400 404 500 502 503 504 /test_error.html;
}
客户端应该发出一个 X-forwarded-for header 并且 IP 地址作为冒号右侧的值。但是我怎样才能在该错误页面上获得错误状态代码和 headers 呢?我是 运行 虚拟盒子上的测试环境。
通常它是后端 Web 应用程序作业来处理请求 HTTP headers,即使通过 JavaScript 代码,它们也不适用于 HTML 页面。但是有一个使用 Server Side Includes 和 HTML 错误页面的解决方法:
location = /test_error.html {
internal;
ssi on;
root /path/to/html;
# or 'alias /path/to/html/test_error.html;'
}
现在在你的 HTML 错误页面你可以使用 SSI echo
命令来输出 nginx 变量:
<head>
...
</head>
<body>
<p>HTTP status is <!--# echo var="status" --></p>
<p>X-Forwarded-For header value is <!--# echo var="http_x_forwarded_for" --></p>
</body>