解决NGINX“ 403禁止”错误

2020年12月31日19:41:13 发表评论 252 次浏览

介绍

使用NGINX时, 最常见的错误是" 403 Forbidden"浏览器错误。了解有关导致此NGINX错误的原因的更多信息, 如何找到错误的根源以及如何纠正根本问题。

关于错误

" 403 Forbidden"是一个通用的NGINX错误, 它表明你出于某些潜在原因要求NGINX无法提供某些内容。 " 403"实际上是HTTP状态代码, 表示Web服务器已接收并理解了你的请求, 但不能采取任何进一步的措施。

找到NGINX配置文件

默认情况下, NGINX配置文件位于/ etc / nginx。如果你检查该目录, 则会发现NGINX的各种模块的许多配置文件。

主要配置文件是/etc/nginx/nginx.conf。该文件包含NGINX的所有主要指令, 类似于Apache的mainhttpd.conf文件。

要编辑此文件, 请使用以下命令:

CentOS 7:

sudo nano /etc/nginx/conf.d/test.example.com.conf

Ubuntu 16.04:

sudo nano /etc/nginx/sites-available/test.example.com.conf

索引文件不正确

" 403禁止访问"错误的最常见原因之一是没有正确设置索引文件。

NGINX配置文件指定要加载的索引文件以及加载顺序。例如, 此行告诉NGINX查找index.html, 然后索引, 然后index.php:

index index.html index.htm index.php;

如果在目录中没有找到这三个文件, NGINX将返回" 403 Forbidden"错误。

注意:这些文件名区分大小写。如果NGINX配置文件指定index.html但文件名为Index.html, 这将导致" 403 Forbidden"错误。

如果你希望使用NGINX Web服务器无法识别的索引文件名, 请按照上述说明编辑NGINX配置文件, 然后将文件名添加到编号配置行。

例如, 添加index.py到可识别的索引文件列表, 请编辑以下行:

index index.html index.htm index.php index.py;

保存并退出文件, 然后使用以下命令重新启动NGINX:

sudo nginx -s reload

自动索引

另一种解决方案是允许目录索引。目录索引意味着如果找不到索引文件, 则服务器将列出目录的所有内容。

出于安全原因, NGINX中默认情况下关闭目录索引。

如果你想在NGINX无法找到(或识别)索引文件的情况下显示目录索引, 请如上所述编辑NGINX配置文件并添加以下两个配置:

autoindex on;
    autoindex_exact_size off;

这些配置必须添加到位置块。你可以将它们添加到现有的位置/块, 或添加一个新的。最终结果将如下所示:

location / {
  [pre-existing configurations, if applicable]
  autoindex on;
  autoindex_exact_size off;
  }

如果你不希望它在整个站点范围内可用, 也可以在特定目录中激活目录索引:

location /myfiles {
  autoindex on;
  autoindex_exact_size off;
  }

保存并退出文件, 然后使用以下命令重新启动NGINX:

sudo nginx -s reload

文件权限

错误的文件权限是导致" 403 Forbidden"错误的另一原因。的标准设置755用于目录和644建议将文件用于NGINX。 NGINX用户还必须是文件的所有者。

识别NGINX用户

首先, 你需要确定NGINX的用户身份。为此, 请使用以下命令:

ps -ef | grep nginx

检查第一列是否有任何NGINX工作进程:

在这个例子中, NGINX worker进程以用户身份运行Nginx的.

设置文件所有权

转到网站文档根目录上方的目录。例如, 如果你网站的文档根目录为/usr/share/nginx/example.com去/ usr / share / nginx使用命令:

cd /usr/share/nginx

将所有文件的所有权从此点更改为Nginx的用户使用以下命令:

sudo chown -R nginx:nginx *

设置权限

将此位置的每个目录的权限设置为755使用命令:

sudo chmod 755 [directory name]

例如, 设置example.com目录, 命令为:

sudo chmod 755 example.com

然后转到Web文档的根目录:

cd example.com

使用以下命令更改此目录中所有文件的权限:

sudo chmod 644 *
一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: