Nginx请求转发失败(Permission denied)
今天在内网服务器装了一个 Nginx,准备用来转发自己写的一个服务,部署好前端后,访问却提示服务器错误。
F12 一看接口报 500 了。
直接通过后台接口地址访问,不经过 Nginx,是能正常访问的,所以推测问题出在 Nginx。
一看 Nginx 日志,果然。
1 | 2023/10/14 19:44:25 [alert] 14456#14456: *19 socket() failed (13: Permission denied) while connecting to upstream, client: 192.168.1.5, server: , request: "POST /api/collection/list HTTP/1.1", upstream: "http://127.0.0.1:8090/api/collection/list", host: "192.168.1.9:8803", referrer: "http://192.168.1.9:8803/" |
提示没有权限。
百度了一下,发现是运行 Nginx 的用户的原因。
1 | www-data 14450 0.0 0.0 59092 2980 ? S 19:44 0:00 nginx: worker process |
估计这个用户缺了什么权限,简单起见,直接修改 /etc/nginx/nginx.conf
。
将 user www-data
改成 user root
,使用 root 用户运行。
然后:
1 | nginx -s stop # 停止 |
搞定!