You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从localhost访问时Nginx无法提供页面的技术求助

解决Nginx本地localhost访问404问题

问题原因分析

你的配置中server_name仅设置为localhost,但可能存在以下两种情况导致请求不匹配:

  1. 服务器上存在其他启用的Nginx站点配置(比如默认的default站点),且该配置也设置了default_server,导致curl localhost时Nginx匹配到了错误的server块,而该块的根目录没有对应页面文件,返回404。
  2. 虽然当前配置是default_server,但/var/www/example.com/目录下的索引文件权限异常,Nginx进程无法读取。

解决步骤

1. 检查并清理冲突的默认站点配置

查看当前启用的站点:

ls -l /etc/nginx/sites-enabled/

如果看到default链接(指向/etc/nginx/sites-available/default),先禁用它:

sudo unlink /etc/nginx/sites-enabled/default

2. 修改当前站点配置,覆盖所有主机头匹配

更新你的server配置,将server_name改为同时匹配localhost和你的域名:

server {
    listen *:80 default_server;
    server_name localhost example.com; # 同时匹配本地和域名请求

    access_log /var/log/nginx/phpmyadmin_access.log;
    error_log /var/log/nginx/phpmyadmin_error.log;

    location / {
        root /var/www/example.com/;
        index index.php index.html index.htm;
    }
}

3. 验证文件权限

确保Nginx进程(通常运行在www-data用户下)能读取站点目录和文件:

sudo chown -R www-data:www-data /var/www/example.com/
sudo chmod -R 755 /var/www/example.com/

4. 测试配置并重启Nginx

先检查配置语法是否正确:

sudo nginx -t

如果输出test is successful,重启Nginx生效:

sudo systemctl restart nginx

5. 验证修复结果

再次执行curl localhost,应该能正常返回Hello World!!!。


内容的提问来源于stack exchange,提问作者TheRyco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 18:50:33