0

location我在我的 Nginx块中为错误页面设置了一个自定义位置(带有最小的 HTML 文件) 。函数`location是:

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 标头,其中 IP 地址作为冒号右侧的值。但是如何在该错误页面上显示错误状态代码和标题?我在一个虚拟盒子上运行一个测试环境。

4

1 回答 1

0

通常,处理请求 HTTP 标头是后端 Web 应用程序的工作,即使通过 JavaScript 代码,它们也不适用于 HTML 页面。但是有一个使用服务器端包含与您的 HTML 错误页面的解决方法:

location = /test_error.html {
    internal;
    ssi on;
    root /path/to/html;
    # or 'alias /path/to/html/test_error.html;'
}

现在在您的 HTML 错误页面中,您可以使用 SSIecho命令输出 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>
于 2021-11-24T07:46:16.593 回答