记录一
当你将 nginx 作为 web server 的时候,403 错误主要是下面两条原因:
一、所有者对目录没有写的权限。
此时可用 chmod 777 目录名
先完全放开权限,如果问题解决,则再慢慢缩小访问权限。
$ chown -R nginx_user:nginx_user /htdocs
二、未配置 index 的类型。
请在 nginx 相应 http 配置节添加 index 的配置。
index index.html index.php;
绝大部分这个报错都是各种权限问题
记录二
我把个人简历放在github上,但是访问很慢,就把这个静态简历迁移到我的VPS服务器上,使用nginx做web服务,访问时出现403错误
nginx配置(只展示重要部分):
server { listen 10000 ; server_name xxxx.xxxx.com ; access_log /home/resume/log/access.log main ; error_log /home/resume/log/error.log ; location / { root /home/resume/www ; index index.html ; } }
访问结果:
Paste_Image.png
查看nginx错误日志:
出现了关键字“Permission denied”
2016/12/23 14:02:26 [error] 5887#5887: *573 open() "/home/resume/www/index.html" failed (13: Permission denied), client: 192.168.15.2, server: xxxx.xxxx.com, request: "GET /index.html HTTP/1.0", host: "xxxx.xxxx.com"
排错记录:
一看是权限问题,马上把 /home/resume/www目录下的所有文件权限改为777 ,重新访问还是 403 ,反反复复折腾了很久,无解....
第二天晚上继续,怀疑是nginx配置错误,搜索 nginx html时找到这个文章nginx 代理本地的html
原来是nginx配置中的用户权限问题
查看nginx worker 用户,www-data 是nginx默认配置的
Paste_Image.png
静态文件存放的文件夹用户是scott,组为executor ,所nginx用户为www-data导致权限问题(如果nginx配置的用户和静态文件的用户不匹配,那怕权限是777也会出现权限问题,具体看<nginx.conf> nginx用户权限)
用户
配置nginx权限和静态文件统一
编辑nginx配置文件
vim /etc/nginx/nginx.conf
修改文件第一行的为静态文件的用户和组
# user 用户名 用户组 ; 这里的用户名和组就是静态文件的user scott executor ;
Paste_Image.png
检查配置正确性
nginx -t
上面的命令执行后返回以下内容则成功
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
重启nginx
nginx stopnginx start
当你将 nginx 作为 web server 的时候,403 错误主要是下面两条原因:
一、所有者对目录没有写的权限。
此时可用 chmod 777 目录名
先完全放开权限,如果问题解决,则再慢慢缩小访问权限。
$ chown -R nginx_user:nginx_user /htdocs
二、未配置 index 的类型。
请在 nginx 相应 http 配置节添加 index 的配置。
index index.html index.php;
绝大部分这个报错都是各种权限问题
记录三
论坛点击管理中心,出现403报错,权限问题
查看网站配置文件,添加管理员电脑的外网IP
只允许管理员自己的电脑外网IP可以访问,其他都禁止访问
重启Nginx服务,然后点击论坛工具,更新缓存就解决了这个问题
vim /home/lnmp/nginx/conf/vhost/*.conf
location ~ .*admin.* {
allow 管理员电脑外网IP/32;
deny all;
location ~ .*\.php?$ {
allow 管理员电脑外网IP/32;
deny all;
service nginx reload
最后要注意的是,在本地电脑添加服务器的外网IP和域名做个解析