nginx:403 forbidden
nginx:403 forbidden
Table of Contents
出现这个错误一般以下原因引起:
1 启动用户与配置用户不匹配
这个就是 nginx.conf 中默认 #user nobody; 这一行,nobody 是默认的操作用户,而实际我们一般不使用此用户, 需要取消注释,并将nobody 修改为我们实际的操作用户。比如:
user root;
2 缺少index文件
在配置文件中 location 部分,/index index.html index.htm/ 这一行。 如果在/root/ 指向的路径中没有找到 index.html 或者 index.htm 文件,就会出现此错误。
在 nginx 的源码文件中有index.html 文件,将其复制到/root/指向的路径,即可。
cp /opt/nginx-1.18.0/html/index.html /mirrors/
3 selinux处于开启状态
selinux 是Linux 里控制端口开放与访问的一个安全性功能。开启了以后 ,我们很多端口都无法正常工作。 可以通过以下命令放开端口:
# CentOS 7 semanage port -a -t http_port_t -p tcp 7690 firewall-cmd --zone=public --add-port=7690/tcp --permanent firewall-cmd --reload
或者直接关闭selinux:
setenforce 0 # 或者 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
4 目录没有权限
一般root 用户启动时,不会有这个原因。而如果是其他用户,则有可能是由于操作路径没有权限引起的。 修改/root/ 指向的路径的属组,或者给启动用户相应的权限:
chownn -R <user>.<group> <path> # 或者 chmod -R 777 <path>
5 访问目录没有配置自动索引
比如:
server { listen 8320 default_server; # listen [::]:8320 default_server; server_name local_mirror; root /mirrors/; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { }
当我访问root下的子路径时,由于在location 中没有配置 autoindex选项,会出现403错误。
解决方法就是在location 中加入以下内容:
autoindex on; autoindex_exact_size on; autoindex_localtime on;
Created: 2020-07-07 Tue 11:59
===================
天行健,君子以自强不息
地势坤,君子以厚德载物
===================