Nginx发送含Base64字符串的JSON POST请求时提示权限拒绝
解决Nginx处理POST请求时的权限错误问题
这俩错误本质是同一个问题——Nginx进程没有权限读写/opt/bitnami/nginx/tmp/client_body目录。你传的是base64格式的图片,请求体体积不小,Nginx需要把请求体临时存到这个目录里,没有权限自然就会抛出创建子目录失败、写入临时文件失败这两种报错。给你一步步搞定:
第一步:确认Nginx的运行用户
执行这条命令查看Nginx进程的所属用户:
ps aux | grep nginx
输出里第二列就是运行Nginx的用户,比如你日志里的进程2737,对应的用户大概率是daemon或者www-data。
第二步:修复目录权限
把下面命令里的<nginx-user>替换成你刚才查到的用户(比如daemon),然后执行:
# 将tmp目录的所有权转交给Nginx运行用户 sudo chown -R <nginx-user>:<nginx-user> /opt/bitnami/nginx/tmp/ # 设置安全且有效的权限,确保Nginx能读写执行目录 sudo chmod -R 700 /opt/bitnami/nginx/tmp/
用700权限是因为tmp目录只需要Nginx自己访问,安全性更高;如果有特殊需求改成750也可以,但不建议设置过松的权限。
第三步:重启Nginx使权限生效
Bitnami环境用专门的脚本重启服务最稳妥:
sudo /opt/bitnami/ctlscript.sh restart nginx
重启完成后再发送POST请求试试,权限错误应该就解决了。
内容的提问来源于stack exchange,提问作者João Palma
相关产品推荐
相关产品推荐

