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
Last Updated 3/25/2024, 3:44:55 PM