Docker Nginx 访问404,报错[error] 28#28: *5 “/xxx/index.html“ is not found (2: No such file or directory)

博主记录了一次Nginx配置问题导致的404错误,通过检查docker文件映射和ssh访问确认文件路径无误。在对比原配置文件后,发现缺少了'user'配置项。添加'user root root;'并使用'nginx-s reload'刷新配置后,网站恢复正常访问。此问题突显了Nginx配置中user指令的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一次 Nginx 配置问题:

修改网站配置如下:

server {
    listen       80;
    listen       443 ssl http2;
    server_name  x.cc *.x.cc;

    charset utf-8;

    location / {
         root /www/wwwroot/;
         expires 30d;
    }
}

结果访问时一直报404, error.log 文件一直报以下异常:

[error] 28#28: *5 "/www/wwwroot/index.html" is not found (2: No such file or directory)

检查docker文件映射路径都是正常的,ssh进入docker容器,使用 vi 命令也可以正常读取文件;

正当百思不得其解时,对比原nginx.conf配置文件,发现少了 user 配置;

尝试直接在 nginx.conf 最上面添加 

user  root root;

然后使用 nginx -s reload 命令刷新配置,再次尝试访问,刷新网页可正常访问;

### 解决方案 当遇到 `Page Not Found` 或者类似的 404 错误时,通常是由以下几个原因引起的:配置文件错误、URL 路径不匹配或者服务器环境未正确初始化。以下是针对不同场景下的具体解决方法。 #### 1. Docker 容器网络丢失问题 如果在启动容器时收到错误提示 `Error response from daemon: network xxxx not found`,这表明指定的网络已不存在或被删除。可以通过重新创建缺失的网络来解决问题: ```bash docker network create xxx_network_name ``` 之后再次尝试启动容器即可[^1]。 #### 2. 宝塔面板访问出现 404 错误 对于宝塔面板返回 `404 Not Found` 的情况,通常是由于未绑定默认站点或访问了未经授权的安全路径所致。可以运行以下命令恢复默认设置并重启服务: ```bash sudo /etc/init.d/bt default ``` 此操作会重置到初始状态,确保能够正常加载管理界面[^2]。 #### 3. Nginx 下 WordPress 配置引发的 404 错误 在 PHPStudy 中通过 Nginx 部署 WordPress 后发生 “404 - Page Not Found”,主要是因为缺少必要的伪静态规则支持。按照如下步骤调整配置文件内容: 进入 **PHPStudy 设置 -> vhosts.conf 文件夹** 找到对应域名配置项(如 `www.example.com_80.conf`),添加适合于 WordPress 使用的标准 rewrite 条件: ```nginx location / { try_files $uri $uri/ /index.php?$args; } ``` 保存更改后记得让 Web Server 生效新设定: ```bash service nginx reload ``` 完成上述修改后应该不会再碰到找不到页面的情况[^3]。 --- ### 注意事项 - 如果以上措施仍无法消除问题,则需进一步排查是否有防火墙阻挡请求或是 DNS 缓存干扰因素存在。 - 对生产环境中实施任何改动前建议先做好数据备份工作以防万一造成不可逆损害。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值