Ubuntu AWS EC2实例中Nginx根目录切换失败的技术求助
解决Nginx根目录切换失败的问题
你的配置文件里已经把root字段改成了/home/ubuntu/test_root,但切换失败大概率是文件权限或SELinux限制导致的,按以下步骤排查修复:
1. 修复目标目录的权限
Nginx默认以www-data用户运行,必须让这个用户能访问目标目录及文件:
- 设置目录的所有者和组:
sudo chown -R www-data:www-data /home/ubuntu/test_root - 设置合理的读写权限:
sudo chmod -R 755 /home/ubuntu/test_root
2. 检查SELinux限制(仅针对RHEL/CentOS等发行版)
如果是带SELinux的系统,即使权限正确也可能被拦截:
- 先临时关闭SELinux测试(重启后失效):
sudo setenforce 0 - 测试能访问后,给目录设置永久生效的SELinux上下文:
sudo semanage fcontext -a -t httpd_sys_content_t "/home/ubuntu/test_root(/.*)?" sudo restorecon -Rv /home/ubuntu/test_root
3. 验证Nginx配置语法
修改配置后必须先验证,避免重启服务失败:
sudo nginx -t
看到test is successful就说明配置语法没问题。
4. 重启Nginx服务
让新的根目录配置生效:
sudo systemctl restart nginx
5. 测试访问
用curl或浏览器访问服务器IP,确认是否能加载/home/ubuntu/test_root下的页面:
curl http://你的服务器IP
额外提示
如果CI/CD流程会自动部署文件到这个目录,要把权限设置步骤加入部署脚本,避免每次部署后权限失效。
内容的提问来源于stack exchange,提问作者Andrew Bao-Viet Nguyen
相关产品推荐
相关产品推荐

