💡
原文中文,约2700字,阅读约需7分钟。
📝
内容提要
文章描述了一次故障排查,因nginx返回403错误,最终发现是Jenkins的umask设置导致文件权限不正确。修改tomcat8的umask后,问题得到解决。
🎯
关键要点
- 故障排查因nginx返回403错误,问题源于文件权限不正确。
- Jenkins调用发布程序varian,生成Docker镜像并上传。
- 新环境使用Debian8,Python3.4,JDK1.8和Jenkins2.134。
- nginx返回403的常见原因包括IP不在白名单、目录禁止列出、文件权限不足等。
- 发现css文件权限为root,导致nginx无法读取,修改权限为644后问题解决。
- 通过控制台执行脚本权限正常,但通过Jenkins执行权限不对,怀疑是umask设置问题。
- umask控制新文件的默认权限,Jenkins在tomcat8中默认umask为0027,需改为0022。
- 最终通过修改tomcat8的umask设置解决了文件权限问题。
❓
延伸问答
nginx返回403错误的常见原因有哪些?
nginx返回403错误的常见原因包括IP不在白名单、目录禁止列出、文件权限不足等。
如何解决nginx的403错误?
可以通过修改文件权限,例如将css文件的权限改为644,使nginx能够读取文件,从而解决403错误。
umask是什么,它如何影响文件权限?
umask是用来设置用户在创建文件时的默认权限的值,影响新文件的权限设置。
为什么通过Jenkins执行脚本时文件权限不正确?
因为Jenkins在tomcat8中默认的umask设置为0027,导致生成的文件权限不足。
如何修改tomcat8的umask设置?
可以通过编辑tomcat的catalina.sh文件,将UMASK值改为0022来修改tomcat8的umask设置。
在故障排查中,如何确认文件权限问题?
可以通过检查文件的属主和权限设置,确认nginx服务用户是否有读取权限来判断文件权限问题。
➡️