nginx reverse proxy disables pve upstream on 500 errors?

ruthbd

New Member
Nov 27, 2024
5
0
1
I have PVE running behind an nginx proxy ... seemingly working well ... until an API request is made that throws a 500 error ... a response like this comes back from PVE to the nginx proxy:
HTTP:
HTTP/1.1 500 no such resource 'ct:103'
Cache-Control: max-age=0
Connection: close
Date: Wed, 27 Nov 2024 02:13:13 GMT
Pragma: no-cache
Server: pve-api-daemon/3.0
Content-Length: 13
Content-Type: application/json;charset=UTF-8
Expires: Wed, 27 Nov 2024 02:13:13 GMT

... this is copied directly from curl. Note the lack of a CRLF after the 500. I don't think that this is a valid, well-formed response? So, that might be why nginx complains:

2024/11/26 20:10:03 [warn] 5#5: *392 upstream server temporarily disabled while reading response header from upstream, client: 192.168.7.163, server: proxmox.example.com, request: "GET /api2/json/cluster/ha/resources/103 HTTP/2.0", upstream: "https://[fd6a:b416:1f4a:db6f:d1fc:fd29:248b:72b8]:8006/api2/json/cluster/ha/resources/103", host: "proxmox.example.com"

After this, nginx starts printing errors about not having any upstreams to connect to ... until the "temporary" disablement is lifted.

Is there any way to workaround this?

Cheers!