WordPress极简博客 WordPress极简博客
  • 新鲜事
  • 战疫情
  • UI素材
    • UI素材
    • 电商/节日
    • PPT
      • 节日庆典
      • 工作汇报
      • 商业计划书
    • word
      • 简历竞聘
      • 合同/公文
  • 创客头条
    • 音乐分享
    • 初创文章
    • 极客头条
    • 生活趣事
    • 生活日记
    • 防骗指南
  • 编程教学
    • API日记
    • Linux安全栏目
      • Linux运维安全汇总
      • DDOS攻击防护
      • XSS攻击防护
      • SQL安全防护
    • Python技术栏目
      • Python基础入门
      • Python基础结构
    • WordPress技术栏目
      • WP主题
      • WordPress技术教程
      • RIPRO主题美化
    • WordPress漏洞发布
    • 技术教程汇总
    • 严选源码
  • 专题
  • 基友
  • 隐私
  • 注册
    登录
立即登录
  • 首页
  • 云优化
  • 新疫情
  • 新鲜事
    • 热文
    • 极客
    • 生活
  • 技术篇
    • WP主题
    • 技术教程
    • Python入门
    • Python基础
  • 专题篇
  • 友链君
首页 Linux安全 自定义Nginx错误页

自定义Nginx错误页

夏柔 7月 3, 2020

Nginx 是一个功能强大、性能强劲的web中间件、反向代理软件。本站目前便是使用 Nginx 作为前端web软件,动态请求转发到后端 PHP 处理。

网站运行过程中难免出现各种问题,比如 本站近期发生的几起安全事件 中Nginx配置错误导致访客进来都是404,本站昨晚定时脚本出错导致 SSR客户端、V2ray客户端 和 trojan客户端 无法下载。无论哪种错误,访客看到冰冷的错误提示页面总会感觉不好:

本文介绍使用 error_page 指令自定义Nginx错误页,当出现404、502等错误时能以友好的页面提示访客。

自定义Nginx错误页

根据HTTP协议,4xx表示客户端请求错误,5xx表示服务器处理错误。其中常见的HTTP错误代码有:

  • 403 Forbidden
  • 404 Not Found
  • 500 Internal Server Eroor
  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout

error_page 指令是Nginx核心模块http中的指令,用来设置出现错误时Nginx显示的页面。其语法为:

error_page 错误代码 [=响应代码] uri;

error_page 可以用在 http、server、location 和 if 块中,一般情况下都用在 server 块中针对具体站点设置。

例如自定义 Nginx 404错误页面:

error_page 404 /404.html;

错误代码可以一次性写多个,也可以分别设置。例如:

# 50x错误使用同一个页面
error_page 500 501 502 503 504 /50x.html;
# 403 错误单独设置
error_page 403 /403.html;

响应代码默认是错误代码,一般不需要设置,如有必要可重置响应代码:

# 重置响应代码404为200
error_page 404 =200 /404.html;

uri不必是本地的,也可以是外部uri:

error_page 404 https://example.com/404.html;

一般情况下我们不希望错误页被访问,可以用 internal 指令告诉Nginx:

error_page 404 /404.html;
# 禁止 /404.html 被直接访问
location = /404.html {
    internal;
}

本站Nginx错误页配置

本站近期因安全攻击、错误配置、脚本错误等造成短期内服务不可用,给访客带来了不便。除了使用监控及时预警外,设置一个友好的错误页面也是必要的。目前本站自定义错误页配置为:

server {
    listen 443 ssl http2;
    server_name tlanyan.me www.tlanyan.me;
    ... 一些其他配置

    error_page 403 /403.html;
    error_page 404 /404.html;
    error_page 500 501 502 503 504 /50x.html;

    location = 403.html {
        internal;
    }
    location = /404.html {
        internal;
    }
    location = /50x.html {
        internal;
    }
    ...一些其他设置

因为internal指令的存在,这些错误页面只能被触发显示,不能直接访问

#nginx#自定义#错误页
0
J2dcg1.png
猜你喜欢
  • 【高危】fastcdn用户数据库表存在明文,修改用户数据无鉴权限制即可增删改
  • fastcdn删除节点数据缺乏身份验证机制
  • fastcdn之SSH列表数据接口
  • fastcdn系统昨日上线发现两个未经身份验证接口
  • 关于宝塔新面板(真实性为止)
  • Nginx添加跨域限制规则
  • 使用测速脚本对国内Linux服务器进行测速
  • 手机号-社交媒体-地理位置开源情报
  • 域名爆破之自动化信息收集脚本
  • 利用免费接口实现国家开放大学刷网课脚本
26 5月, 2020
Ripro子主题-jizhisucai极致素材主题,为极简高端素材站而生
夏柔
站长
夏山如碧 - 怀柔天下
1725
文章
25
评论
58145K
获赞
版权声明

文章采用创作共用版权 CC BY-NC-ND/2.5/CN 许可协议,与本站观点无关。

如果您认为本文侵犯了您的版权信息,请与我们联系修正或删除。
投诉邮箱wpsite@aliyun.com

栏目推荐
Python基础入门33
WordPress技术教程267
前沿技术情报所22
城市创新——新消费11
最近有哪些不可错过的热文23
程序员的养生之道0
节
春
  • 新鲜事
  • 疫情实况
  • UI素材
  • 技术教程
  • 音乐分享
  • 专题
  • 友情
  • 隐私
  • 云优化
Copyright © 2019-2025 WordPress极简博客. Designed by 夏柔. 辽公网安备21010502000474号 辽ICP备19017037号-2