Ubuntu 22.04下Nginx配置location /site出现403错误的解决方法
解决Nginx配置/site出现403 Forbidden的问题
核心原因
当你配置location /site并设置root /var/www/html时,Nginx会尝试访问**/var/www/html/site**目录下的索引文件。如果这个目录不存在、目录/文件权限不符合要求,或者目标目录内没有指定的索引文件,就会返回403错误。
具体解决步骤
1. 确认目标目录存在
先检查/var/www/html/site目录是否存在,执行命令:
ls -ld /var/www/html/site
如果目录不存在,创建该目录:
sudo mkdir -p /var/www/html/site
同时将测试用的索引文件复制到这个目录中:
sudo cp /var/www/html/index.html /var/www/html/site/
2. 修复目录与文件权限
Ubuntu系统中Nginx的运行用户通常为www-data,需要确保目标目录和文件对该用户拥有读取权限:
sudo chown -R www-data:www-data /var/www/html/site sudo chmod -R 755 /var/www/html/site
3. 调整Nginx配置(可选,用alias替代root)
如果你的站点文件实际存放在/var/www/html下,不想单独创建site目录,可以使用alias指令替代root,配置示例如下:
location /site { alias /var/www/html; index index.html index.htm index.nginx-debian.html; }
注意:如果配置的是location /site/(带尾斜杠),alias也要对应添加尾斜杠:
location /site/ { alias /var/www/html/; index index.html index.htm index.nginx-debian.html; }
4. 验证配置并重启Nginx
每次修改配置后,先验证配置语法是否合法:
sudo nginx -t
如果输出提示test is successful,重启Nginx使配置生效:
sudo systemctl restart nginx
内容的提问来源于stack exchange,提问作者lewis machilika
相关产品推荐
相关产品推荐

