nginx 自定义403返回页面

这篇具有很好参考价值的文章主要介绍了nginx 自定义403返回页面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

因公司内部域名通常用白名单的方式来进行域名访问限制,想要自定义 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 文件文章来源地址https://www.toymoban.com/news/detail-505177.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">
<html>
<head><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>';
}

到了这里,关于nginx 自定义403返回页面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 从指标管理中获取洞察,赋能公司内部论坛社区运营

    从指标管理中获取洞察,赋能公司内部论坛社区运营

    本文作者:张起楠 做了运营的同事多多少少都有这样的感觉,不断在公司内发起各项活动和话题,希望能够调动员工参与度,虽然每天投入大量的时间,但却无法确定真实的活动效果。在信息爆炸的时代,我们可以轻松接触到包罗万象的运营资料和文章,但谈及如何运营内部

    2024年02月04日
    浏览(10)
  • postman返回状态码401、403或执行用例返回用户无权限以及用户未登录

    postman返回状态码401、403或执行用例返回用户无权限以及用户未登录

    这些原因是因为我们导入的系统路径有问题,很多系统请求方式是使用Get的方法,这导致我们使用post方法的时候使用了Get方法的路径,这就是很容易踩的坑  我们可以使用 Postman Interceptor,我们先下载个Postman Interceptor拓展然后安装到浏览器上 参考这个 从零开始:快速入门

    2024年02月05日
    浏览(12)
  • python爬虫返回403错误?加了请求头+代理也解决不了 >>看这

    【疑惑】:使用python的requests库发起get或post请求返回403代码错误,使用postman发起请求发现状态码200竟然成功了。这是什么原因?首先排除ip问题,ip有问题的话postman也访问不了。难道是headers出现了问题吗,通过对比发现也不是headers的问题。那就奇了怪了? 【解疑】:其实遇

    2024年02月12日
    浏览(14)
  • 搭建docker-nginx服务,访问nginx 报错403

    搭建docker-nginx服务,访问nginx 报错403

    docker拉取nginx镜像,运行nginx镜像生成nginx容器,访问nginx服务,报错403错误 没有做宿主机映射到容器中nginx访问的目录。 宿主机映射的目录最好不要在root下新建文件夹,因为也会涉及到权限问题,所以可以在别的目录下新建。 在其他目录下创建index.html文件,并做映射。 -v

    2024年02月12日
    浏览(14)
  • Nginx出现403错误,应该怎么解决

    Nginx出现403错误,应该怎么解决 Nginx在实际工作中扮演了多重角色,包括Web服务器、反向代理服务器、负载均衡器、静态资源服务器、缓存服务器以及SSL/TLS终结点等。其高性能、可靠性和灵活性使得Nginx成为现代应用架构中不可或缺的组件,帮助提供高效、安全且可扩展的服

    2024年02月08日
    浏览(12)
  • nginx代理webSocket链接响应403

    nginx代理webSocket链接响应403

    使用nginx代理webSocket链接,nginx响应403 1、nginx访问日志响应403 2、浏览器链接失败 是 proxy_set_header Origin xxx 导致的 Origin xxx的具体作用不明确,有知道的欢迎留言 proxy_set_header Origin xxx 改为 proxy_set_header Origin \\\"\\\" 最终配置如下 补充:使用 WSS 访问时,如果不是 443 端口,也会出现

    2024年02月11日
    浏览(12)
  • k8s内部域名解析

    1、创建busybox容器,检查域名解析 2、检查域名解析服务 同命名空间解析,可以省略命名空间后缀? 3、通过标签查询到后端的pod信息 [root@master01 demo]# kubectl get pod -l k8s-app=kube-dns -n kube-system -o wide #通过标签查到主机信息 4、跨命名空间解析,需要添加命名空间。

    2024年02月12日
    浏览(7)
  • python requests爬虫返回403错误?加了所有特征的请求头+代理也解决不了的问题处理

    【疑惑】:使用python的requests库发起get或post请求返回403代码错误,使用postman发起请求发现状态码200竟然成功了。这是什么原因?首先排除ip问题,ip有问题的话postman也访问不了。难道是headers出现了问题吗,通过对比发现也不是headers的问题。那就奇了怪了? 【解疑】:其实遇

    2024年02月15日
    浏览(15)
  • Jenkins 页面部分显示Http状态403 被禁止

    Jenkins 页面部分显示Http状态403 被禁止

    前言 生产环境Jenkins部署了一段时间了,结果今天在流水线配置中,部分页面显示Jenkins 页面部分显示Http状态403 被禁止,修改配置点击保存之后偶尔也会出现这个。 以下是问题图片 在全局安全配置里面,勾选上启用代理兼容即可 问题解决了!记录一下。 解释一下:跨站请求

    2024年02月06日
    浏览(11)
  • 傻瓜式:局域网内部搭建DNS域名解析服务

    傻瓜式:局域网内部搭建DNS域名解析服务

    首先安装所需的yum源 1、yum install -y bind 2、yum install -y bind-utils           3、yum -y install vim 4、修改DNS主配置文件 [root@localhost /]# vim /etc/named.conf 5、修改这两行的内容 listen-on port 53 { any; }; allow-query     { any; };                     6、给本机的DNS指向自己的dns服务

    2024年02月11日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包