之前在tomcat 7下文件上传后访问一直没问题,现在tomcat版本升到8.5,在测试文件http上传时,发现所传文件无法通过nginx访问了。

(Tomcat具体版本为8.5.11)

PS:tomcat通过root用户来启动。

在确定了nginx自身的没有配置问题之后,上linux服务器查看所传文件,发现其上传目录下代码自动创建的目录权限是750,所上传文件权限是640。

也就是说默认赋予的文件权限中其他用户的权限始终为0所导致。

默认权限与umask有关,因此怀疑是系统默认导致,但在查看系统默认配置(/etc/profile)后,发现默认配置没问题。

,文件夹权限

,文件夹权限

可见都有读取访问权限的。

在默认情况下,tomcat所建目录及文件应该用到的是umask 022,但为何实际情况并非如此呢?

(按照结果看tomcat 8.5下上传文件的默认权限为umask 027

问题到这里,排除下来可能的原因并不多了,因为之前在其他机器上使用tomcat 7的时候是上传后访问没问题的,所以又拿tomcat 7在这台服务器上测试了一下,

以判断是不是tomcat 8.5自身的问题。结果发现,在同台服务器上tomcat 7上传后访问没问题。最终定位为题是在tomcat 8.5上。

接下来,抱着试一试的心态,在tomcat 8.5catalina.sh中搜索 umask关键字(因为我始终有个直觉这和默认权限设置有关,结果证实这次的判断是准确的),很庆幸,

原因立马就定位到了。

UMASK=”0027”出现了!在按照目前的功能需求,将其改为UMASK=”0022”并重启tomcat 8.5后,文件上传后访问恢复正常。

至此,问题解决。期间,不是没想过通过百度或google解决问题,但是因为tomcat 8.5版本比较新,相关问题的中文文档就没有搜到。

英文文档也是在定位了tomcat 8.5问题后搜索关键词tomcat8.5 umask后在tomcat官网文档及相关英文论坛里发现了踪迹。

最新文章

  1. CentOS7使用firewalld打开关闭防火墙与端口
  2. ng-option指令使用记录,设置默认值需要注意
  3. 获取某地的经纬度 && 通过经纬度获取相应的地理位置
  4. HDU 4462 Scaring the Birds (暴力求解,二进制法)
  5. linux shell编程学习笔记(二) --- grep命令
  6. 关于http客户端常见错误"警告:Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is rec"
  7. http协议和web本质
  8. chapter 2: Representing and manipulating information
  9. js中得call()方法和apply()方法的用法
  10. 【取对数+科学计数法】【HDU1060】 N^N
  11. 「OC」 封装
  12. Starting a Gradle Daemon, 5 busy and 1 incompatible and 1 stopped Daemons could not be reused, use --status for details FAILURE: Build failed with an exception. * What went wrong: Could not dispatch
  13. 47.Odoo产品分析 (五) – 定制板块(2) – 为业务自定义odoo(2)
  14. java 常用工具整理
  15. 使用vue.js 引用阿里图标 --无法显示(报错)
  16. opencv学习之路(22)、轮廓查找与绘制(一)
  17. android的学习网站
  18. githup地址
  19. SQL的其他用法
  20. 写了一个hiero中添加自定义Token的脚本

热门文章

  1. input 关键字提示,对于一些特定优化来说,很有用处
  2. CentOS7.5 系统最小化安装与初始化配置
  3. java生成前端验证码+验证「kaptcha」
  4. pytest--运行指定的测试和参数化
  5. concurrent(三)互斥锁ReentrantLock & 源码分析
  6. 亿级Web系统搭建 Web负载均衡的几种实现方式(阿里)
  7. awk简单应用
  8. java的sha1加密,转化为python版本
  9. Jenkins绑定git
  10. OpenCV使用CMake和MinGW的编译安装