之前在tomcat 7下文件上傳后訪問一直沒問題,現在tomcat版本升到8.5勒极,在測試文件http上傳時,發(fā)現所傳文件無法通過nginx訪問了:報錯 403 forbidden
反復確定nginx配置沒有問題键痛,上服務器查看了一下文件匾七,發(fā)現上傳目錄下自動創(chuàng)建的目錄權限750絮短,文件權限640昨忆,也即:默認賦予的文件權限中其他用戶的權限始終為0。
因此懷疑是默認的環(huán)境變量里umask被改了限府,然而cat /etc/profile
后發(fā)現:
if [ $UID -gt 199 ] && [ "
id -gn
" = "id -un
" ]; then
umask 002
else
umask 022
fi
是沒有問題的。那么胁勺,就只能說tomcat的默認umask有問題,vim tomcat8.5/bin/catalina.sh
寥裂,搜索umask
關鍵字案疲,發(fā)現:
if [ -z "$UMASK" ]; then
UMASK="0027"
fi
umask $UMASK
ok,破案了褐啡。
經檢查诺舔,tomcat7時代是沒有這個設定的备畦,因此應該是tomcat出于安全性考慮增加的,但這個真是造成了困擾懂盐。
解決辦法:把umask的0027改為0022即可,即:保證目錄755文件644的權限就可以避免nginx以匿名用戶訪問(use nobody)時發(fā)生403 forbidden的問題