rmdir.cn

静态站点配置示例

部署普通静态文件和 Next.js 静态导出

配置骨架(非 Shell 命令)

server {
    listen 80;
    server_name example.com;
    root /srv/www/site;
    index index.html;
}

说明

适用于直接由 Nginx 提供 HTML、CSS、JavaScript 等文件。示例 server 块放入被主配置 http 块 include 的站点文件,例如 /etc/nginx/conf.d/site.conf;具体 include 位置以 nginx -T 为准。用真实域名替换 example.com,root 指向实际发布目录。配置片段不是 Shell 命令。修改后先检查通过再重载。

示例

普通静态站点

站点文件位于 /srv/www/site,不存在的路径返回 404。

server {
    listen 80;
    server_name example.com;
    root /srv/www/site;
    index index.html;
    location / {
        try_files $uri $uri/ =404;
    }
}

注意事项:Nginx worker 需要读取文件并遍历父目录。公开内容建议文件 644、目录 755,并核对属主和安全策略,不能一律使用 777。

Next.js 静态导出与 trailingSlash

将构建的 out 内容发布至 /srv/www/next-out;示例对应 output: export 且 trailingSlash: true。

server {
    listen 80;
    server_name example.com;
    root /srv/www/next-out;
    index index.html;
    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    location = /404.html {
        internal;
    }
}

注意事项:必须发布完整 out 目录,包括 _next 静态资源与 404.html。不要将未知 URL 都回退到首页,否则会掩盖真正的 404。

参考资料