Tomcat、Nginx/Openresty 隐藏版本号,使用nginx来统一显示错误页面

默认报错页面信息会暴露出版本号

进入tomcat的lib目录找到catalina.jar文件

unzip catalina.jar之后会多出两个文件夹

进入org/apache/catalina/util 编辑配置文件ServerInfo.properties

修改为

server.info=Apache Tomcat

server.number=0.0.0.0

server.built=Nov 7 2021 20:05:27 UTC

Tomcat、Nginx/Openresty 隐藏版本号,使用nginx来统一显示错误页面

将修改后的信息压缩回jar包

cd /tomcat/lib

jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties

Tomcat、Nginx/Openresty 隐藏版本号,使用nginx来统一显示错误页面

重启tomcat

Tomcat、Nginx/Openresty 隐藏版本号,使用nginx来统一显示错误页面

可以看到没有了版本信息。

处理这样隐藏版本信息之外,在web.xml 中配置

Tomcat、Nginx/Openresty 隐藏版本号,使用nginx来统一显示错误页面

也可以,但是因为后端报错比较多,处理500 和 404之外,还需要配置其他报错代码,比如400等,比较麻烦。

其实更好的方法是,用nginx的来统一配置错误页面,这样报错时统一由nginx来处理,不会出现任何 tomcat的相关信息

Tomcat、Nginx/Openresty 隐藏版本号,使用nginx来统一显示错误页面

发生错误时,统一显示下面的错误页面:

Tomcat、Nginx/Openresty 隐藏版本号,使用nginx来统一显示错误页面

用户甚至不知道nginx后面的是 tomcat 呢,还是 php,还是啥。 完美!!!

需要注意的是 nginx 反向代理tomcat错误页面使用的是 proxy_intercept_errors on;

而 nginx 自身的错误页面配置用的是 fastcgi_intercept_errors on;

undefined

Nginx/Openresty隐藏版本号

nginx的http段添加 server_tokens           off;

Original: https://www.cnblogs.com/digdeep/p/14748087.html
Author: digdeep
Title: Tomcat、Nginx/Openresty 隐藏版本号,使用nginx来统一显示错误页面

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/543923/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • ASP.NET MVC 自定义处理JSON ActionResult类

    1、统一JSON格式处理方式,同时指定ContentType类型,解决低版本浏览器获取json时ContentType为application/json提示下载的问题. publi…

    Java 2023年6月5日
    071
  • NoteOfMySQL-10-触发器与事件

    触发器是由事件来触发某个操作,这些事件包括insert语句、update语句、delete语句,当数据库系统执行这些事件时,就会激活触发器执行相应的操作。事件调度器(event s…

    Java 2023年6月5日
    083
  • 《回炉重造》——泛型

    泛型 前言 以前学习到「泛型」的时候,只是浅浅的知道可以限制类型,并没有更深入理解,可以说基础的也没理解到位,只是浮于表面,所以,现在回炉重造,重学泛型!打好基础! 什么是泛型? …

    Java 2023年6月10日
    092
  • 【Spring Boot】 Spring Boot之Hystrix使用介绍

    { "annotations": { "list": [ { "builtIn": 1, "datasourc…

    Java 2023年5月29日
    072
  • Vue.js安装

    Vue.js 安装 1、独立版本 我们可以在 Vue.js 的官网上直接下载 vue.min.js 并用 ** 我们把 js、css 路径路径修改为相对路径: href=stati…

    Java 2023年6月5日
    089
  • SpringCloud 学习总结

    SpringCloud 学习总结 学习回顾 1.Maven依赖管理 ​ 在微服务项目中,我们一般是先创建一个父项目模块对整个项目的依赖进行版本限定和依赖控制,子模块继承父模块后,不…

    Java 2023年6月8日
    094
  • idea警告 breakpoints dramatically slow down

    idea启动项目提示的黄色警告 , 其实就是有地方断点之后 , 影响项目运行速 打开断点管理 , 查看具体是哪个影响了 , 断点不需要了及时取消 Original: https:/…

    Java 2023年6月15日
    063
  • Java学习-第一部分-第二阶段-项目实战:坦克大战【2】

    坦克大战【2】 笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 线程-应用到坦克大战 坦克大战0.3版 陆游曾说…

    Java 2023年6月15日
    092
  • 多线程基础知识!!!

    1.1、继承Thread类(重点) public class MyThread extends Thread{ @Override public void run() { } pu…

    Java 2023年6月8日
    099
  • Java:回调机制

    1. 什么是回调函数回调函数(callback Function),顾名思义,用于回调的函数。 回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。回调函数是一个…

    Java 2023年5月29日
    074
  • 图解|用好MySQL索引,你需要知道的一些事情

    我是蝉沐风。 这一篇文章来聊一聊如何用好MySQL索引。 为了更好地进行解释,我创建了一个存储引擎为InnoDB的表 user_innodb,并批量初始化了500W+条数据。包含主…

    Java 2023年6月7日
    089
  • java语言的优缺点

    转载自:https://blog.csdn.net/bingshanyijiao_fkx/article/details/51613954 角度一: 优点:简单、安全、稳定、跨平台…

    Java 2023年5月29日
    063
  • HTML页面打印

    <style media=print>.Noprint{display:none;}style> <object id="WebBrowser&q…

    Java 2023年6月16日
    074
  • [JVM] CPU缓存一致性协议

    CPU缓存一致性协议 CPU高速缓存 CPU缓存是位于cpu和内存之间的临时数据交换器,它的容量比内存小的夺但是交换速度要比内存快得多,主要是 为了解决cpu运行时的处理速度与内存…

    Java 2023年6月5日
    0104
  • 4、反射的概念

    动态语言: 是一类在运行时可以改变其结构构的语言· 例如新的函数、对象、甚至代码可以被 引进, 已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代 码可以根据某些条件…

    Java 2023年6月8日
    083
  • Git生成ssh keys加密算法ed25519

    1:桌面右击后出现Git push here点击进入直接输入以下命令 ①:ssh-keygen -t ed25519 -f my_github_ed25519 -C “…

    Java 2023年6月9日
    067
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球