Nginx 常见错误代码
Siona2024-03-20
Nginx 常见错误代码
403 Forbidden 访问静态资源被拒绝
Nginx 访问静态资源报错主要有 3 种原因:
- Nginx 的目录里面没有默认文档,并且没有列出目录的权限;
- Nginx 没有访问目录的权限;
- 启动用户和 Nginx 工作用户不一致。
解决方法
Nginx 的目录里面没有默认文档,并且没有列出目录的权限
# Nginx 配置文件,默认一般为 /etc/nginx/nginx.conf
vi /etc/nginx/conf.d/6011.conf
# 静态资源路径
location /bi-web/ {
alias /home/webapps/bi-web/;
}
# 访问 http:192.168.1.101:6011/bi-web/index.html 或 http:192.168.1.101:6011/bi-web/【nginx 会自动查找该路径下的 index.html,注意最后一定要加 / 】
# 检查 Nginx 配置
nginx -t
# 重启 Nginx
nginx -s reload
Nginx 没有访问目录的权限
# 进入网站所在目录
cd /home/webapps/bi-web/
# 赋权(755 即可,也可用 777)
chmod -R 755 *
启动用户和 Nginx 工作用户不一致
如果上述方式两种方式都没有解决,可以参考一下此方式。
# /etc/nginx/nginx.conf
# 改成管理员用户的用户名,或者启动用户的用户名
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
此配置文件中,nginx 的用户为 nginx,而实际后台登录时,通常是 root 管理员用户登录,从而产生了启动用户和 Nginx 工作用户不一致,导致权限问题。
# /etc/nginx/nginx.conf
# 修改 nginx.conf 配置文件,将 user 用户改为 root
user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
也可使用如下命令查看 nginx 的启动用户:
# 查看 nginx 的启动用户
$ ps aux | grep "nginx: worker process" | awk '{print $1}'
nginx
# 发现 nginx 的启动用户是 nginx,而不是 root