部署静态网页关于报错403 forbidden权限不足的的问题!
今天在使用nginx简单部测试署一个静态网页时,报错一个403的问题,我当时的配置是这样的nginx.conf 中的server是这样配置的
server{
listen 8081;
server_name 192.168.2.104;
location / {
root /root/html;
index testIndex.html;
}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://testHtml;
}
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://testHtml;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server{
listen 8081;
server_name 192.168.2.104;
location / {
root /root;
index index testIndex.html;
}
}
server{
listen 8081;
server_name 192.168.2.104;
location / {
root /root/html;
index testIndex.html;
}
}
我当时出现的错便是入下图所出现的情况:
上面我配置的是root账号的家目录,我把静态页面放在这个目录下了,访问时nginx肯定没有权限去访问了,就算赋值777权限也不行。所以会报错,后面我把静态页面copy到opt目录,一切正常。
下面我来来说说通常会因为那些原因出现403错误
引起nginx 403 forbidden通常是三种情况:
** 1.一是缺少索引文件**
** 2.二是权限问题**
** 3.三是SELinux状态。**
很多人在排查错误的时候,前两个步骤都知道,但是第三个真的很少有人知道。
那么,我们看三种解决nginx报错403的问题?
第一种:
缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。
server{
listen 8081;
server_name 192.168.2.104;
location / {
root /opt/html;
index testIndex.html;
}
如果在/opt/html下面没有index.php,index.html的时候,直接可能就会报403 forbidden。
第二种:
二、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。
解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决
如:
把静态页面的目录设置755权限
chmod -R 755 /data
第三种
SELinux设置为开启状态的原因。
SELinux服务有三种配置模式,具体如下:
nforcing:强制启用安全策略模式,将拦截服务的不合法请求。
permissive:遇到服务越权访问时,只发出警告而不强制拦截。
disabled:对于越权的行为不警告也不拦截。
输入getenforce 查看状态是否时启动安全策略模式
如果 nforcing 状态修改成 disabled 状态后重启服务器变可;
如何将SELINUX=enforcing 修改为 SELINUX=disabled 状态:
vim /etc/selinux/config
修改
注释掉
#SELINUX=enforcing
在线面添加
SELINUX=disabled
变可
当然selinux 的存在时为了服务器数据安全不介意关闭
建议设置selinux放行用户对网站的请求操纵
但是具体怎么实现,请详细去了解一下selinux服务
如果觉着方法还可以,请点个赞再走