浙Lt20180338 2026-02-28 16:26 采纳率: 40%
浏览 5

Nginx作HTTP服务器出现404 Not Found

问题遇到的现象和发生背景

我使用hexo和aurora在腾讯云轻量应用服务器创建博客,在确认hexo server成功后,使用了Nginx,但是出现了404 Not Found

操作环境、软件版本等信息

Ubuntu

尝试过的解决方法

禁用默认欢迎页

我想要达到的结果

成功访问

ubuntu@VM-0-3-ubuntu:/etc/nginx/sites-available$ cat hexo-blog
server {
    listen 80;
    server_name _;

    root /home/ubuntu/blog/public;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
  • 写回答

2条回答 默认 最新

  • 极客车云 2026-02-28 19:49
    关注

    1. 检查Nginx配置文件

    首先,需要检查Nginx的配置文件,通常Nginx的配置文件位于/etc/nginx/nginx.conf或者/etc/nginx/conf.d/目录下的相关配置文件。

    步骤1:查看默认站点配置

    假设你使用的是默认的站点配置,一般在/etc/nginx/conf.d/default.conf(不同系统可能路径略有不同),打开该文件查看配置内容,例如:

    server {
        listen       80;
        server_name  localhost;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
    

    这里的root指令指定了Nginx默认的网页根目录是/usr/share/nginx/html,而你的hexo博客文件应该放置在正确的目录下。

    步骤2:修改配置文件指向hexo博客目录

    如果你的hexo博客生成的文件在/your/hexo/blog/public目录下(假设hexo博客的生成目录是这个),那么需要修改Nginx配置文件中的root指令为该目录:

    server {
        listen       80;
        server_name  localhost;
    
        location / {
            root   /your/hexo/blog/public;  # 修改为hexo博客的生成目录
            index  index.html index.htm;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
    

    2. 重新加载Nginx配置

    修改完配置文件后,需要重新加载Nginx的配置,使用以下命令:

    sudo nginx -s reload
    

    如果出现错误,比如配置文件语法错误,可以使用sudo nginx -t来检查配置文件语法是否正确,示例:

    sudo nginx -t
    

    如果有语法错误会提示具体错误位置,根据提示修正配置文件。

    3. 检查hexo博客生成是否正确

    确保hexo博客已经正确生成,在hexo博客的根目录下执行hexo generate命令来生成静态文件,示例:

    cd /your/hexo/blog
    hexo generate
    

    生成成功后,文件会输出到你在_config.yml中配置的public目录下(默认是public目录)。

    4. 检查文件权限

    确保Nginx进程有权限读取hexo博客生成的文件,一般Nginx进程以nginx用户运行,可以将hexo博客生成的文件所在目录的权限适当放开,比如:

    sudo chmod -R 755 /your/hexo/blog/public
    sudo chown -R nginx:nginx /your/hexo/blog/public
    

    这里-R表示递归设置权限,将/your/hexo/blog/public目录及其下文件的所有者和所属组设置为nginx用户和组,权限设置为755(用户可读可写可执行,组和其他用户可读可执行)。

    通过以上步骤,一般可以解决Nginx作为HTTP服务器出现404 Not Found的问题。如果还是存在问题,可以进一步查看Nginx的错误日志,Nginx的错误日志默认一般在/var/log/nginx/error.log,通过查看错误日志来获取更详细的错误信息,以便进一步排查问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月28日