【记录】阿里云重启后访问某个POST接口时报了nginx 500错误的解决过程之一

本文记录了一次因服务器重启导致Nginx出现500错误的问题排查及解决过程。通过查看错误日志定位到临时文件权限问题,并调整Nginx配置解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ps 之所以是"之一",是因为nginx 500 错误的原因有很多,具体还是要看错误日志

诗朗诵——《宕 机》

前几天阿里云因为全球变暖的原因

突然宕机了

阿里云启动了自救服务

帮我重启

我寻思

回家重启一下nginx和几个后端服务器不就完了

但人生不是一路平坦

重启nginx后,网站前端页面访问正常,几个GET请求也正常

提交到POST接口时,出现nginx 500错误

首先排除法,排除不是跨域问题,因为之前都是正常的,

而且强迫症又去检查了一下,nginx里也设置了跨域

location / {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
    }

那就是和宕机有关系

  1. 首先查看nginx 的错误日志位置
    我的nginx 放在 /usr/local
    查看配置文件
# cat /usr/local/nginx/conf/nginx.conf

事后诸葛表示:注意到这两行

user  www  www;

error_log  /home/wwwlogs/nginx_error.log  crit;
  1. 查看错误日志
# cat /home/wwwlogs/nginx_error.log

我这里报错的是一个临时文件没有权限,

*82 open() "/var/lib/nginx/tmp/client_body/0000000003" failed (13: Permission denied), client:xxxxxxxx

不知道重启个服务器而已 怎么就突然没权限了

  1. 总之先查看这个目录的权限用户
# cd /var/lib/nginx/tmp/
# ls -l
drwx------ 2 www root 4096 May  9 01:39 client_body

是www 和 root 用户

我 nginx 启动服务的是root用户,工作用户也是root, 不懂为什么还有root不能访问的文件,总之先试试

  1. nginx.conf里的user 加上root
user  root  www;
  1. 然后重启nginx
# nginx -s stop

# nginx -c /usr/local/nginx/conf/nginx.conf

# nginx -s reload

就莫名可以了

原理大概就是这样
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值