Ghost Blog File Upload Error Fixed: How to Solve “Request Is Larger Than the Maximum File Size” in NGINX
Struggling to upload large files to Ghost? The “request is larger than the maximum file size” error usually means your `<your-site>-ssl.conf` NGINX setting is too low. Increase `client_max_body_size` and reload NGINX — here’s the step-by-step fix that finally worked for me.
I spent the better part of eight months chasing my tail on this one. (Also, I did not work on this the whole time just every once and a while I would come back to this) Every time I tried to upload a large file (around 80 MB) to my Ghost blog, I’d get the dreaded “request is larger than the maximum file size the server allows” error. I dug through Cloudflare settings, reviewed logs, even reached out to support, convinced something upstream was blocking the request. I went as far as editing my local DNS to bypass Cloudflare entirely — and the issue still persisted. Turns out, the fix was painfully simple: I was editing the wrong file. The changes needed to be in <your-site>-ssl.conf
. Here’s how I finally fixed it — so you don’t waste months like I did.
Understanding the Error
Ghost relies on NGINX as its reverse proxy, and NGINX has a default upload limit of just 1 MB. When you try to upload a larger file — like a high-quality GIF or video — NGINX blocks it before it even reaches Ghost.
client_max_body_size 50M;
After saving, I’d reload or restart NGINX, try the upload again, and… nothing changed.
The problem? My site was using SSL, so the live configuration was actually in <your-site>-ssl.conf
. Changes to <your-site>.conf
weren’t being applied at all. After saving, I’d reload or restart NGINX, try the upload again, and… nothing changed.
The problem? My site was using SSL, so the live configuration was actually in <your-site>-ssl.conf
. Changes to <your-site>.conf
weren’t being applied at all.
The Real Fix: Edit <your-site>-ssl.conf
The TLDR;
# Quick Fix for Ghost GIF Upload Error
# 1. Edit your SSL config
sudo nano /etc/nginx/sites-available/<your-site>-ssl.conf
# 2. Add/update max upload size
client_max_body_size 200M;
# 3. Reload NGINX
sudo nginx -s reload
# 4. Verify
nginx -T | grep client_max_body_size
Final Thoughts
Looking back, this was a classic case of overthinking. I tore through Cloudflare, combed through Ghost logs, and wasted countless hours tweaking the wrong config file. The real culprit? A simple misconfiguration in <your-site>-ssl.conf
.
If you’re seeing this error, skip the rabbit hole and check your SSL config first. Hopefully, this saves you months of frustration and a few gray hairs.