I'm currently struggling into getting the correct configuration for my M2 shop and i can't figure out on how to troubleshoot this.
On some images, varnish backend is randomly returning 503 backend fetch, sometimes it's appearing, sometimes it's not.
I'm using Ubuntu 18.4 with Nginx / Varnish 5.2.1 and PHP 7.3.16.
Here is the content of my default.vcl: https://pastebin.com/HJ2B7pvf
Then, my nginx conf: https://pastebin.com/GDytNsht
First thing that i struggled, i could not enable the health_check no matter what i was putting on it. Each time i got a 503 backend fetch failed on this so i disabled it (tried to remove pub/). Second funny thing, i'm not able to setup MAGE_ROOT to my pub directly, each time got a 404 error.
I'm kind of stuck in there, any help would be appreciated.
Thank you!
-
did you manage to fix this ?geryjuhasz– geryjuhasz2023年11月07日 08:52:57 +00:00Commented Nov 7, 2023 at 8:52
1 Answer 1
The Pastebin containing the VCL doesn't look 100% complete, so I cannot make any definitive conclusions.
However, you can use varnishlog to figure out why the HTTP 503 is returned.
General backend health
You can run varnishlog -g raw -i backend_health to see how healthy the backend is in generally. I'd make sure this command is running while you're trying to simulate the issue.
If the backend is sick, it 'll say so.
HTTP 503 for the image failure
Another thing we want to do is to look into the full request & response information when the issue occurs.
Imagine the image that is failing on you is located in /pub/img/image123.jpg. The corresponding varnishlog call to debug that image is:
varnishlog -g request -q "ReqUrl eq '/pub/img/image123.jpg'"
Send the varnishlog output
You can add the output of the varnishlog command, and I'll have a look at it.
I'd advise you to run the 2 varnishlog commands in separate Windows:
- 1 command for the health check information
- 1 command for the image debugging information
The combination will provide a decent amount of information to get to the bottom of the issue.
NOTE: please only send output for the request where you can simulate the issue. The output can be very verbose, so please make sure you only include logs from relevant test cases.
Happy hunting, let me know when you have something, and I'll try to assist.