本文介绍: 因公司内部域名通常用白名单方式来进行域名访问限制,想要自定义 403 返回页面。以下配置可以展示 nginx 中的 $remote_addr 变量。1、开启允许 nginx 使用 error_page 处理错误信息即可,如果需要自定义 上游/代理 服务器状态吗,则需要开启配置就可以在 html 文件使用 nginx 中的自有变量。因为只涉及 nginx ip 白名单,所以只需要开启。也可以配置成返回固定html 文件。2、关于 error_page 配置。

背景

公司内部域名通常用白名单方式来进行域名访问限制,想要自定义 403 返回页面

配置

1、开启允许 nginx 使用 error_page 处理错误信息

fastcgi_intercept_errors on;

因为只涉及 nginx ip 白名单,所以只需要开启 fastcgi_intercept_errors 即可,如果需要定义 上游/代理 服务器状态吗,则需要开启 proxy_intercept_errors
2、关于 error_page 配置

error_page 403 /403.html显示定义403页面内容,正常返回403状态码。
error_page 403 = /403.html显示定义403页面内容,但返回200状态码。

3、ssi 配置
开启 ssi 配置就可以在 html 文件使用 nginx 中的自有变量
以下配置就可以展示 nginx 中的 $remote_addr 变量

<!--# echo var="remote_addr" -->

4、具体配置
也可以配置成返回固定html 文件

fastcgi_intercept_errors on;
error_page 403 /custom_403.html; #自定义错误页面 uri
location = /custom_403.html {
    ssi on;  # 使html支持读取变量
    ssi_silent_errors on;  # 默认值off,开启后在处理SSI文件出错时不输出错误提示
    add_header Content-Type 'text/html';
    add_header X-Frame-Options 'SAMEORIGIN';
    return 403 '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"&gt;
<html&gt;
<head&gt;<title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
 Sorry for the inconvenience.<br/>
Please report this message and include the following information to us.<br/>
Thank you very much!</p>
<table>
<tr>
<td>URL:</td>
<td><!--# echo var="scheme" -->://<!--# echo var="host" --><!--# echo var="request_uri" --></td>
</tr>
<tr>
<td>Server:</td>
<td>AMS_PROXY</td>
</tr>
<tr>
<td>Your Ip:</td>
<td><!--# echo var="remote_addr" --></td>
</tr>
<tr>
<td>Date:</td>
<td>
<script language="JavaScript" type="text/javascript">
var enabled = 0; today = new Date();
var date;
M=today.getMonth() + 1
D=today.getDate()
HH=today.getHours()
MM=today.getMinutes()
SS=today.getSeconds()
if (M<10)
{
M="0"+M
}
if (D<10)
{
D="0"+D
}
if (MM<10)
{
MM="0"+MM
}
if (HH<10)
{
HH="0"+HH
}
if (SS<10)
{
SS="0"+SS
}
date = (today.getFullYear()) + "/" + M + "/" + D + " " + HH+":"+MM+":"+SS +"";
document.write(date);
</script>
</td>
</tr>
</table>
<hr/>Powered by Tengine<hr><center>tengine</center>
</body>
</html>';
}

原文地址:https://blog.csdn.net/weixin_45066823/article/details/130008102

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_33794.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注