问题描述
在App Service Linux环境中,如部署Tomcat 应用后,如果访问的页面找不到,应用会返回一个由Azure生成的404页面,那么是否可以修改它呢?
PS: 如果是App Service for Windows,可以参考博文 [ App Service for Windows 环境中为Tomcat自定义4xx/5xx页面 : https://www.cnblogs.com/lulight/p/16335472.html ]
问题解答
答案是可以的。只是步骤比较复杂。需要修改 Tomcat 的 conf/server.xml 文件配置并应用它。
1) 从App Service上复制出当前Tomcat中的 server.xml 文件
- 打开App Service的SSH页面:https://<your-app-service-name>.scm.chinacloudsites.cn/webssh/host
- 执行命令(把server.xml服务到home目录中): cp /usr/local/tomcat/conf/server.xml /home
2)修改server.xml,添加ErrorReportValue配置
- 访问Kudu newui页面: https://<your-app-service-name>.scm.chinacloudsites.cn/newui/fileManager#
- 修改server.xml ,在末尾附近添加 <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" />
PS:如果遇见修改页面一直显示“Fetching contents...”而不出现内容,则是需要为当前用户赋予 Web Plan Contributor的权限。不然,只有通过下载到本地修改后,跟随源文件一起上传 或者单独 上传到 /home 文件夹。
3)使用修改后的 server.xml 覆盖默认的/usr/local/tomcat/conf/server.xml 文件
- 若已经使用了startup_script脚本文件,在其中添加cp /home/server.xml /usr/local/tomcat/conf 即可
- 如果没有,首先添加startup_script脚本,然后在其中添加这段命令。如在 /home 目录中创建一个 startup_script.sh 的文件,在文件中加上 cp /home/server.xml /usr/local/tomcat/conf 内容, 然后配置在App Service --> General Settings --> Startup Command
最后,实现的效果图为:
参考资料
配置运行时堆栈时,“启动文件”部分的预期值是什么? https://learn.microsoft.com/zh-cn/troubleshoot/azure/app-service/faqs-app-service-linux#-------------------------