解决 Ghost 博客导入大文件的设置

Ghost 博客,导入 json(4.6M),报错:Request is larger than the maximum file size the server allows 如何解决?

如何解决 Ghost 博客导入 JSON 文件时的文件大小限制问题

当您在 Ghost 博客导入大于服务器允许的最大文件大小的 JSON 文件时,出现错误提示“Request is larger than the maximum file size the server allows”,可以按照以下步骤进行解决:

  1. 检查 Ghost 配置
    在您的 Ghost 安装目录中,找到 config.production.json 文件,添加或修改以下配置项:

    {
        "server": {
            "maxBodySize": "10mb"
        }
    }
    

    这将把最大请求体大小设置为 10MB(可以根据需要调整)。

  2. 重启 Ghost 服务
    修改配置文件后,需要重启 Ghost 服务以使更改生效。可以使用以下命令:

    ghost restart
    
  3. 检查 Nginx 或 Apache 配置(如适用):
    如果您使用 Nginx 或 Apache 作为反向代理,确保在相应的配置中设置了文件大小限制。

    • 对于 Nginx,在您的 server 块中添加或修改以下行:

      client_max_body_size 10M;
      
    • 对于 Apache,在您的虚拟主机配置中添加或修改以下行:

      LimitRequestBody 10485760
      
  4. 重启 Web 服务器
    修改完成后,需要重启 Nginx 或 Apache 服务:

    • Nginx:

      sudo systemctl restart nginx
      
    • Apache:

      sudo systemctl restart apache2
      
  5. 尝试重新导入
    完成上述步骤后,再次尝试导入 JSON 文件。

通过这些步骤,您应该能够解决 Ghost 博客导入大文件时的大小限制问题。

client_max_body_size 10M; nginx 这个配置,请给写一个示例

Nginx 配置示例

以下是一个完整的 Nginx 配置示例,包含 client_max_body_size 10M; 设置。假设您正在为 Ghost 博客配置 Nginx,并且您的配置文件名为 ghost.conf

server {
    listen 80;
    server_name yourdomain.com;  # 替换为您的域名

    # 设置最大请求体大小
    client_max_body_size 10M;

    location / {
        proxy_pass http://127.0.0.1:2368;  # Ghost 的默认端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    # 静态文件配置(可选)
    location ~ ^/(assets|favicon\.ico|robots\.txt) {
        access_log off;
        expires 1y;
        add_header Cache-Control "public, no-transform";
    }
}

配置说明

  • server_name: 替换为您自己的域名。
  • client_max_body_size 10M: 设置允许的最大请求体大小为 10MB。
  • proxy_pass: 代理请求到 Ghost 服务的地址和端口(通常为 2368)。
  • location 配置可以根据需要进行调整,以支持静态文件或其他特定路径的处理。

应用配置

  1. 将以上内容添加到您的 Nginx 配置文件中(如 /etc/nginx/sites-available/ghost.conf)。

  2. 创建符号链接到 sites-enabled(如果尚未链接):

    sudo ln -s /etc/nginx/sites-available/ghost.conf /etc/nginx/sites-enabled/
    
  3. 测试 Nginx 配置:

    sudo nginx -t
    
  4. 重启 Nginx 服务以应用更改:

    sudo systemctl restart nginx
    

完成后,您就可以尝试重新导入大于默认限制的 JSON 文件了。

2024 年 10 月 17 日写于〔深圳福田〕