this post was submitted on 16 Jun 2023
2 points (100.0% liked)

Programming

13376 readers
1 users here now

All things programming and coding related. Subcommunity of Technology.


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 1 year ago
MODERATORS
 

I've recently been wondering if Lemmy should switch out NGINX for Caddy, while I hadn't had experience with Caddy it looks like a great & fast alternative, What do you all think?

EDIT: I meant beehaw not Lemmy as a whole

top 23 comments
sorted by: hot top controversial new old
[–] mrmanager@lemmy.today 2 points 1 year ago (1 children)

Nginx has nothing to do with the performance issues of Lemmy. :)

[–] CinnamonTheCat@beehaw.org 1 points 1 year ago (1 children)

It does actually, NGINX likes to drop connections when it gets overwhelmed, Caddy prefers to slow down the connection and respond when it can.

[–] chris@l.roofo.cc 1 points 1 year ago

This might be true but appservers and DBs usually give up way before nginx.

[–] BitOneZero@beehaw.org 1 points 1 year ago (1 children)

One more thing I forgot to mention. The nginx 500 errors people are getting on multiple Lemmy sites could improve shortly with the release of 0.18 that stops using websockets. Right now Lemmy webapp is passing those through nginx for every web browser client.

[–] daniel@lemmy.fribyte.no 1 points 1 year ago

You can use any reverse proxy you'd like, doesn't have anything to do with lemmy

[–] diamond@beehaw.org 0 points 1 year ago

People comment a lot on performance, but I think Caddy can (and should) hold up perfectly fine. It might be worth it to experiment with running servers half on Caddy and half on NGINX, then see how the traffic is being handled by both to compare.

I do think the much cleaner config makes up for the maybe slight performance loss, though. It's just so much less work to set up and maintain compared to NGINX. The last time I've used NGINX was years ago, when I decided to drop it entirely in favor of Caddy. I do think NGINX is only "standard" because it came before Caddy, and that most applications should not prefer it over Caddy.

[–] knova@links.dartboard.social 0 points 1 year ago (1 children)

If it’s not broken why change it? Are there performance benefits to switching?

[–] CinnamonTheCat@beehaw.org 0 points 1 year ago (2 children)

I think there are, but there would need to be testing done, on the surface it seems to be a much simpler proxy than nginx. And doesn't use the same architecture as Nginx

[–] supernovae@readit.buzz 1 points 1 year ago

Switching to Caddy won't change/fix anything.

[–] terebat@programming.dev 0 points 1 year ago (1 children)

Caddy is not going to fix anything, on the contrary, it consumes more ram. Generally the instances have been slowing down when swap gets hit by the db, so lowering ram usage and optimizing that should be the first priority.

[–] CinnamonTheCat@beehaw.org 0 points 1 year ago (1 children)
[–] terebat@programming.dev 1 points 1 year ago* (last edited 1 year ago) (1 children)

Sorry if I was curt! No reason to be sorry for throwing out a decent idea

[–] CinnamonTheCat@beehaw.org 1 points 1 year ago

Thank you for apologizing, I feel better now.

[–] Illecors@lemmy.cafe 0 points 1 year ago (1 children)

Why? What's wrong with nginx?

[–] CinnamonTheCat@beehaw.org 0 points 1 year ago* (last edited 1 year ago) (1 children)

While I can't speak for others, I've found NGINX to have weird issues where sometimes it just dies. And I have to manually restart the systemd service.

The configuration files are verbose, and maybe caddy would have better performance? I hadn't investigated it much

EDIT:

Nginx lacks http3 support out of the box

[–] Illecors@lemmy.cafe 0 points 1 year ago (1 children)

nginx was built for performace, so I doubt caddy would have any significant different in regards to that. I've not found config verbosity to be a problem for me, but I guess to each their own. I'm aware I may come across as some gatekeeper - I assure you that is not my intention. It just feels like replacing a perfectly working, battle testing service with another one just because it's newer is a bit of a waste of resources. Besides - you can do it yourself on your instance. It's just a load balancer in front of a docker image.

[–] CinnamonTheCat@beehaw.org 0 points 1 year ago (1 children)

Isn't caddy battle tested too? And looking into alternatives is not really a waste of resources. It just feels like nginx is not as reliable and likes to drop requests. It's not just a load balancer, mind you.

[–] Illecors@lemmy.cafe 0 points 1 year ago (1 children)

I am surprised you're getting dropped requests. What do the logs say?

[–] CinnamonTheCat@beehaw.org 0 points 1 year ago (1 children)

I mean not on my personal server, my personal server keeps dying all the time and I got tired of it. I haven't looked into the logs. But I meant with the recent influx of reddit users, I saw beehaw and lemmy.ml also have 500 errors.

[–] Illecors@lemmy.cafe 1 points 1 year ago (1 children)

Right. If you're getting a 500 (I suspect 502 - bad gateway) you're not dropping requests. That is lemmy itself crapping its pants. Nginx simply tells you the target behind it is doing something wrong. Happens when the lemmy software get overwhelmed.

[–] CinnamonTheCat@beehaw.org 0 points 1 year ago (1 children)

Oh, sorry I apologize I didn't know it was lemmy going dead.