[Nginx]: 403 forbidden 的原因以及解决方法

发布时间 2023-08-30 18:12:57作者: 二月无雨

[Nginx]: 403 forbidden 的原因以及解决方法

403状态码含义

The HTTP 403 Forbidden response status code indicates that the server understands the request but refuses to authorize it

状态码 403 Forbidden 代表客户端错误,指的是服务器端有能力处理该请求,但是拒绝授权访问。简单来说就是客户端无权限访问URL对饮的资源.

Nginx:403问题第一种原因,启动用户与[Nginx]工作用户不一致

例如:

user  nginx;
worker_processes  200;
error_log  /data/nginx/logs/error.log debug;
error_log  /data/nginx/logs/error.log  notice;
error_log  /data/nginx/logs/error.log  info;

启动[Nginx]的用户与Nginx user不一致,则会导致403 forbidden 出现。

Nginx:403问题第二种原因,Nginx user 对应的用户没有目录操作权限

# 查询对应目录权限
ll /data/web
#分配权限
chmod -R 777 /data/web/

Nginx:403问题第三种原因,Nginx 配置错误

错误配置,alias对应的目录后面没加/出现403问题

location /app/ {
    alias /data/web/app;
    try_files $uri $uri/ @appweb;
}
location /app/newsNotice/ {
    alias /data/web/app;
    try_files $uri $uri/ @appweb;
}
location @appweb {
    rewrite ^.*$ /app/index.html last;
}

正确配置

location /app/ {
    alias /data/web/app/;
    try_files $uri $uri/ @appweb;
}
location /app/newsNotice/ {
    alias /data/web/app/;
    try_files $uri $uri/ @appweb;
}
location @appweb {
    rewrite ^.*$ /app/index.html last;
}