ashamed to say it took me a really long time but I finally figured out why http was broken on my VPS; one of my server configs had an errant http2 parameter set on port 80, which breaks all http servers on port 80. tbh I think nginx should probably reject this kind of (mis)configuration outright