Thank you Anton! Your benchmarks start to become part of my (nearly) daily diet. I wouldn't have thought benchmarks could replace the news paper in the coffee shop. Strange times in deed ;-) Your doing a great job here delivering real value, especially since you keep adding more and more tools. I love it!
Thanks man i watch your tthree nginx vids in a row (vs apache, caddy and traefik), and others as well, you provided me with great information and insights and i am grateful for that, keep up the good work man, subscribed!! Edit: Please never add background music, it's annoying
And once again we see, it's never just all about the hype :D Great video, thanks for that! I expected nginx to outperform it, if configured well, but I would have never guessed, by this much!
Oh man, that wasn't even a fair fight. Perhaps there's some additional configuration that could help Traefik, but I'd say that it isn't going to beat Nginx, regardless of the config.
Traefik written in Go garbage collected will never come in par with Nginx written in non garbage collected C or Rust. The difference is insignificant in small user though, only if you want to scale to 100.000+ users
I use traefik simply because it is very convenient for my use case. Its very easy to deploy new applications on docker swarm since i only have to worry about labels and it just works and free ssl aswell
Thanks a lot Anton, always helpful. Well, I was expecting these results, as I believe that Traefik can be more suitable if servers were deployed using docker, as Traefik provides better integration and the easiest configuration to setup load balancer and especially if trying to load and configure ports and SSL certs with docker.
Great video! Well explained and a fair benchmark. I was hoping that Freenginx will have new features that in nginx are missing from the open source version.
@@AntonPutra Actually there is another fork, even more active called Angie. Angie does have a Prometheus exporter built-in. And also HTTPS built-in with ACME support..
It's really nice when you have a static configuration, but the "selling point" of traeffik is not performance. It's dynamically understanding network routing with minimal manual configuration. With multiple backends scaling independently I wonder what is easier to maintain
it's a good point, but really, nowadays, most applications are deployed in kubernetes and use ingress controllers, which have exactly the same 'yaml' api for nginx and traefik. i'll do a comparison of only ingress controllers maybe in a week or so also, traefik admits to poor performance, and they just released a 'fast proxy' new engine in 3.2 which i'll also test soon
I thought you were Indonesian, your name is very commonly used by most people in Indonesia, Putra which means child in Indonesian. Your video content is good.
Thanks for keep alive tip. I've ben using nginx as reverse proxy for years, but newer with keepalive... Such facepalm. I hate when some software has dumb default config
Talking about reverse proxies, maybe you could do a haproxy vs nginx vs envoy. Or a service mesh overhead comparison, istio proxy with side cars vs istio proxy ambient mode (ztunnel) vs raw mTLS with 1 client pod and 1 server pod on 2 different nodes. But it might just test the TLS stack.
As always, pretty neat and crisp video with good explanation of the core concepts! I was curious if you had used any open source project to generate the load or did you write your own solution?
Hey Anton, great video, as always!! Was wondering about Nginx vs Apisix ingresses. Despite that apisix is built on top of nginx, it would be interesting to see the overhead apisix has, if any.
This is an interesting thing to watch. I have never setup nginx as reverse proxy. I only use nginx for setting up vue or any other web app in microservices via dockerfile of course. And Traefik as reverse proxy (maybe because we started from using docker swarm years ago(windows), then moved to linux using k8s. I've never setup cloud infra, as since this microservice popularity, I have only setup docker swarm (windows) and k8s(linux) cluster from scratch on-prem. I'm not sure as how it will differ if I setup nginx as reverse proxy now and do comparison(or it would be the same result as you have) only familiar with Rhel with firewall/traefik for reverse proxy via clusterip in k8s
both nginx and traefik have ingress controllers, which are based on the original source code with some modifications. i'm planning to review them soon as well
I love Traefik for its dynamic service discovery. It's like ingress for docker swarm. But CPU usage sucks. With the simple load test it peaks up to 100%. I knew nothing fast can be written in go
@AntonPutra it's cheap and simple. You can make a "cluster" with one node and add more if needed. And you have no overhead for infrastructure. I made one for my friend on 1cpu 2gb node and gradually migrated to another with more computing power. Then added the second one. And we add the third one when a higher load is expected. No advanced configuration required
@AntonPutra - 😢 I apologize in advance, this comments is not related to the video. I was watching the video, "NGINX controller for Kubernetes" with ID 9sLHoEyRq8w, when I reload the page surprisingly I can't see it, now the video is private What happened? Is it possible to watch the video again? Thanks Pier
I am looking for a third-party load-balancers benchmark between HAProxy and NGINX but I haven't found any videos yet (there is a benchmark video but it's produced by HAProxy' member). Can you create a video which compares them in load-balancing to enlighten developers like me. Thank you so much.
This was awesome, once again. Will you create a new kubernetes course but with k3s so that we can use a single node to practice kubernetes? One more question, is DNS-01 wildcard certificate?
DNS-01 is a challenge to prove that you own a domain by creating a TXT record. As soon as you create that TXT record, Let's Encrypt will query your domain and verify it. DNS-01 is the only option to validate wildcard certificates with Let's Encrypt, but it's also frequently used with regular certificates. Wildcards are not safe; don't use them-just create multiple alternative names instead.
but can nginx dynamically discover services? I'm going to build a multi-tenant app very soon, which will be responding to requests from different domains and forwarding them to different servers accordingly I don't think nginx fits my use case
Can you redo your dotnet vs go benchmark, but with dotnet 9. supposedly its backwards compatible and adds 15% better performance. Also, it's just released and would get you views.
It did half the performance of nginx, which is quite good considering nginx is written c. There will always be a divide between garbage collected languages and non garbage collected languages.
it's the garbage collector. rust/c/c++will always outperform go, java, csharp etc. But, the later are much easier to use and are good enough for some cases.
@DavidSmith-ef4eh you can minimize the overhead of GC in Go and csharp aot and optimize for stack allocation even with go assembly and other tools, yeah ofc C is the benchmark but Go and csharp are getting closer every year with much faster dev time to get those results. The differences we talk are miniscule traefik is much slower not because of go but of its dynamic features that add overhead
@@AntonPutra At first, it seemed that Nginx had prevailed, but it turned out that its Availability dropped later. It provided food for thought. Perhaps there's a more optimal configuration for Traefik. Traefik appears to be reliable enough but less resource-efficient. If my conclusion is correct.
This is not a valid comparison. Apples to oranges. Nginx is proclaimed in this very video as highly performant at the cost of explicit configuration and Traefik simply cannot do the same because it is solely a reverse proxy. Should have done nginx ingress controller instead.
🔴 To support my channel, I'd like to offer Mentorship/On-the-Job Support/Consulting (me@antonputra.com)
Could you possibly compare Cloudflare's Pingora web server to nginx? Surely if Cloudflare are using it, then it must be efficient and therefore fast.
Since Nginx seems to scale so well can you benchmark gravitron vs x86 instances on similar cpu/memory spec? @AntonPutra
⚠If you can improve Traefik, please send me a PR, and I'll rerun the test! ⚠
What you think about enabling new experimental FastProxy engine in the Traefik?
On the Traefik blog they write about ~50% performance boost.
Thank you Anton! Your benchmarks start to become part of my (nearly) daily diet. I wouldn't have thought benchmarks could replace the news paper in the coffee shop. Strange times in deed ;-)
Your doing a great job here delivering real value, especially since you keep adding more and more tools.
I love it!
thank you! ❤️
Thank you for your video and effort. that was perfect.
I am still waiting for Nginx vs HAProxy comparison.
yes, it's coming soon, but I also need to compare ingress controllers
@@AntonPutraman you're doing God's work on these series. Keep it up
still waiting for haproxy and envoy too
@@vuongphaminh2293 and nginx vs envoy
I really like the short introduction explaining the services at the start of each video. Super helpful.
Thanks man i watch your tthree nginx vids in a row (vs apache, caddy and traefik), and others as well, you provided me with great information and insights and i am grateful for that, keep up the good work man, subscribed!!
Edit: Please never add background music, it's annoying
Wow! Just visited your channel to see the latest test. Turns out it’s the one I asked for ❤
It takes a while to produce them 😊
It's mind blowing how long established software is more performant and efficent than new one
who would guess right? that a product that has been optimized for decades would be better than a fresh new one made only for profit
Generalize this idea is very dangerous. Doesn't matter it old or new, make the test and use it to make right decision
Apache was established software when nginx came about. Its not about new vs old. Its about what problem it was designed to solve.
i'll compare ingress controllers in a separate video, I hope Traefik performs better
@AntonPutra i hope so! Either way, great video.
And once again we see, it's never just all about the hype :D Great video, thanks for that! I expected nginx to outperform it, if configured well, but I would have never guessed, by this much!
yeah, if you take the time to configure it properly, it has huge potential
Super Anton! Thanks for the Traefik benchmark!
my pleasure
Oh man, that wasn't even a fair fight. Perhaps there's some additional configuration that could help Traefik, but I'd say that it isn't going to beat Nginx, regardless of the config.
As soon as I get any feedback or PR on how to improve Traefik, I'll share the results
@AntonPutra Thank you and keep up the great work. Much appreciated!
Traefik written in Go garbage collected will never come in par with Nginx written in non garbage collected C or Rust. The difference is insignificant in small user though, only if you want to scale to 100.000+ users
I like ngijx better because the configuration for simple websites is easy and you already have a strong and robust set to bigger if you need to.
I use traefik simply because it is very convenient for my use case. Its very easy to deploy new applications on docker swarm since i only have to worry about labels and it just works and free ssl aswell
yes, it's very easy to use. also, they just released in version 3.2 a new engine that claims to be 50% faster, i'm going to test it in about a week!
Anton thanks for your work! Really great
thank you!
Thanks!
thank you for the support!
Test nginx and haproxy as reverse proxies
will do!
And Caddy too. Not exactly a fair comparison because the objectives are different, but an interesting one nonetheless.
vs Envoy!
Please do haproxy
Thank you so much for this info ! Great job!
thank you!
Thanks a lot Anton, always helpful.
Well, I was expecting these results, as I believe that Traefik can be more suitable if servers were deployed using docker, as Traefik provides better integration and the easiest configuration to setup load balancer and especially if trying to load and configure ports and SSL certs with docker.
true
Hello Anton,
Thanks for the insight. Great content in your channel.
my pleasure! i'll do ingress controllers soon as well
@ i wanted to comment if you can walk us through configuring those aws instances and installing grafana and all that goodies. Thank you Anton
@AntonPutra Do you have instructions on how you setup the monitoring infra? like Prometheus and Grafana
nice tests btw
thanks, yes I do, just search for 'prometheus' on my channel or github repo
Great video! Well explained and a fair benchmark. I was hoping that Freenginx will have new features that in nginx are missing from the open source version.
interesting, never heard of freenginx before. i'll take a look!
@@AntonPutra Actually there is another fork, even more active called Angie. Angie does have a Prometheus exporter built-in. And also HTTPS built-in with ACME support..
It's really nice when you have a static configuration, but the "selling point" of traeffik is not performance. It's dynamically understanding network routing with minimal manual configuration.
With multiple backends scaling independently I wonder what is easier to maintain
it's a good point, but really, nowadays, most applications are deployed in kubernetes and use ingress controllers, which have exactly the same 'yaml' api for nginx and traefik. i'll do a comparison of only ingress controllers maybe in a week or so
also, traefik admits to poor performance, and they just released a 'fast proxy' new engine in 3.2 which i'll also test soon
I thought you were Indonesian, your name is very commonly used by most people in Indonesia, Putra which means child in Indonesian. Your video content is good.
Thanks for keep alive tip. I've ben using nginx as reverse proxy for years, but newer with keepalive... Such facepalm. I hate when some software has dumb default config
agreed, I wonder if they have an explanation for this, cause all other proxies use it
Talking about reverse proxies, maybe you could do a haproxy vs nginx vs envoy.
Or a service mesh overhead comparison, istio proxy with side cars vs istio proxy ambient mode (ztunnel) vs raw mTLS with 1 client pod and 1 server pod on 2 different nodes. But it might just test the TLS stack.
sure, i did a service mesh comparison in the past, but i think it's time to refresh. also, i'll do haproxy and envoy soon as well
Wow that was not even close! 😮
yYeah, unfortunately, I'll get a lot of hate
@@AntonPutra Sorry about the hate. It's just a fair test IMO.
@@AntonPutra don't mind the hate (which ≠ criticism), the purpose of this video is to test hypotheses and provide hard cold fact through real data.
Thank you for a great video❤
my pleasure!
As always, pretty neat and crisp video with good explanation of the core concepts! I was curious if you had used any open source project to generate the load or did you write your own solution?
Great video!
thank you!
Hey Anton, great video, as always!! Was wondering about Nginx vs Apisix ingresses. Despite that apisix is built on top of nginx, it would be interesting to see the overhead apisix has, if any.
i was interested in Apisix myself, i'll test them soon
This is an interesting thing to watch.
I have never setup nginx as reverse proxy.
I only use nginx for setting up vue or any other web app in microservices via dockerfile of course. And Traefik as reverse proxy (maybe because we started from using docker swarm years ago(windows), then moved to linux using k8s.
I've never setup cloud infra, as since this microservice popularity, I have only setup docker swarm (windows) and k8s(linux) cluster from scratch on-prem. I'm not sure as how it will differ if I setup nginx as reverse proxy now and do comparison(or it would be the same result as you have)
only familiar with Rhel with firewall/traefik for reverse proxy via clusterip in k8s
both nginx and traefik have ingress controllers, which are based on the original source code with some modifications. i'm planning to review them soon as well
I love Traefik for its dynamic service discovery. It's like ingress for docker swarm. But CPU usage sucks. With the simple load test it peaks up to 100%. I knew nothing fast can be written in go
Is anyone still using Docker Swarm? 😊
@AntonPutra it's cheap and simple. You can make a "cluster" with one node and add more if needed. And you have no overhead for infrastructure. I made one for my friend on 1cpu 2gb node and gradually migrated to another with more computing power. Then added the second one. And we add the third one when a higher load is expected. No advanced configuration required
@@AntonPutra but it sucks. It has no QoL things and there's almost no ecosystem. And I'm impressed traefik supports it
@@oliverfoxitalos or k3s can do that too
LiteSpeed vs Apache vs Nginx please!
ok noted!
That was interesting, keep making videos. Where are you from?
Can u also compare Envoy with Nginx and Traefik?
It is also a widely used proxy, specifically in Istio service mesh
yes i'll do envoy soon as well
It's also used by Cilium for L7 policies
Thanks for the wonderful videos. Would be doing nginx vs contour at some point ?
sure, added to my list
envoy gateway comparison would be great 👍
i did it in the past but will refresh it soon
Try with TempestaFW too, probably the result would be great!
ok i'll take a look
I had every faith in Nginx 😊
wait till i get to pingora :)
@AntonPutra - 😢 I apologize in advance, this comments is not related to the video.
I was watching the video, "NGINX controller for Kubernetes" with ID 9sLHoEyRq8w, when I reload the page surprisingly I can't see it, now the video is private
What happened?
Is it possible to watch the video again?
Thanks Pier
oh sorry about that, just trying to clean up old videos. i actually have updated one - th-cam.com/video/xwiRjimKW9c/w-d-xo.html
@@AntonPutra Thank you, but in that video there were some interesting insights.
Is it possibile to restore it for a few days? Just this weekend
Kinda wanna see how pingora would compare, tho its obviously not really a alternative since its a framework for building proxies
sure, I'll cover pingora in the future
非常好
thank you!
try nginx vs pingora(written in rust by cloudfare)
ok, will do! just moved to the top of my list
Really interested in Envoy vs Nginx
ok i'll refresh it soon!
Great video, could you do a test about self-host BaaS like Appwrite vs Supabase vs PocketBase?
ok, i'll add them to my list!
@@AntonPutra Thank You 🙏
Thank you for this comparison Anton.
Anyway, just out of curiosity, do you, by any chance, have Indonesian bloodline?
my pleasure! no, i don't, but i'm thinking about moving to bali, haha
@ but.. your name.. even among all SEA countries, I can confirm that only Indonesian use that name.
I am looking for a third-party load-balancers benchmark between HAProxy and NGINX but I haven't found any videos yet (there is a benchmark video but it's produced by HAProxy' member). Can you create a video which compares them in load-balancing to enlighten developers like me. Thank you so much.
Can you please make C# vs Node comparison?
ok, added to my list
How about flask vs sinatra vs bun?
added to my list
Is this Traefik version 3.2 ?
yes 3.2.0
@ thanks. I thougth 3.x had a major Performance improvement…
How did you manage to fix that CPU usage jump from 85% to 100% for nginx?
Issue was with outgoing TCP connections, I simply used 4 instances instead of 2, as it otherwise hit the 30-35k limit
Can you test surrealdb with other popular db like postgres
Nice. Can you do istio?
I did it in the past, but I think I can refresh it using ambient mode
This was awesome, once again. Will you create a new kubernetes course but with k3s so that we can use a single node to practice kubernetes?
One more question, is DNS-01 wildcard certificate?
DNS-01 is a challenge to prove that you own a domain by creating a TXT record. As soon as you create that TXT record, Let's Encrypt will query your domain and verify it. DNS-01 is the only option to validate wildcard certificates with Let's Encrypt, but it's also frequently used with regular certificates. Wildcards are not safe; don't use them-just create multiple alternative names instead.
@AntonPutra hmm this method will be useful when ports are not available for HTTP-01 verification I am guessing. Makes sense.
but can nginx dynamically discover services? I'm going to build a multi-tenant app very soon, which will be responding to requests from different domains and forwarding them to different servers accordingly
I don't think nginx fits my use case
yes, it's called an ingress controller 😊 i'm about to release a new video comparing nginx and traefik ingress controllers for kubernetes
@@AntonPutra thanks for reply your channel is awesome
🍿 Benchmarks: th-cam.com/play/PLiMWaCMwGJXmcDLvMQeORJ-j_jayKaLVn.html&si=p-UOaVM_6_SFx52H
Not me watching this to know which one to setup just for me to be the only one using it.
in that case, traefik is the way to go 😊
@@AntonPutra Yeah I didn't realize it handled letsencrypt itself which is enough for me to not even consider nginx
Please do an Elixir vs Go video 🌝
yes, soon. i even have the code already :)
@@AntonPutra Nice! Looking forward to it ;)
Awesome! Please ingress controllers 🙏🏻
yes, I'll compare ingress controllers in about a week
@ thanks 🙏🏻
is there a Rust based Traefik?
i think pingora is rust based, which i'll test soon as well
LiteSpeed pls
noted!
Nginx is better?
Hell yeah!
it's not better, it's just faster, but traefik is more user-friendly
This is a re-upload right?
well, the old one was based on internal metrics and released over a year ago, this one is based on metrics from an external client
Audio too low IMO, could easily add +6db or so
ok will fix it
Can you redo your dotnet vs go benchmark, but with dotnet 9. supposedly its backwards compatible and adds 15% better performance. Also, it's just released and would get you views.
yes but it'll take some time
Do haproxy please
yes nginx vs haproxy coming soon as well
Review Victoria meteics and logs please)
ok maybe later
Cloudflares
Pingora
ok it's on my list
Nginx is the goat.
It is... I hope I find something faster
Postgres vs MS SQL Server
noted
finally!!
😊
Your name looks like indonesian name 😊
Keturunan kali 😅
iya lagi
sama, ngikutin dia dari awal, dulu pas belum show off muka sangkain orang indo wkwk
😊
Big L for traefik this time
😔
Mas Anton orang mana sih sebenarnya? 😅
didn't get it :)
nginx vs IIS ? 😶🌫
ok maybe :)
If you are going to use eye tracking software just disable your camera instead. It really makes your video alot more uncomfortable to watch
i don't use it
Traefik RIP
they just released a new fast proxy engine in version 3.2 which is 50% faster; i'll be testing it in about a week!
what about, nginx vs aws load balancer
you mean aws load balancer controller and alb? i may include it when i test ingress controllers
Golang apps just can't scale, the language just has too much overhead. I've seen this mistake happen too often.
what are you talking about
It did half the performance of nginx, which is quite good considering nginx is written c. There will always be a divide between garbage collected languages and non garbage collected languages.
actually, Go is one of the easiest languages to scale using goroutines
it's the garbage collector. rust/c/c++will always outperform go, java, csharp etc. But, the later are much easier to use and are good enough for some cases.
@DavidSmith-ef4eh you can minimize the overhead of GC in Go and csharp aot and optimize for stack allocation even with go assembly and other tools, yeah ofc C is the benchmark but Go and csharp are getting closer every year with much faster dev time to get those results. The differences we talk are miniscule traefik is much slower not because of go but of its dynamic features that add overhead
пу-пу-пу 🤔
?
@@AntonPutra At first, it seemed that Nginx had prevailed, but it turned out that its Availability dropped later. It provided food for thought. Perhaps there's a more optimal configuration for Traefik. Traefik appears to be reliable enough but less resource-efficient. If my conclusion is correct.
@@karpulix yes i'll be testing fast proxy which was released in traefik 3.2 in a few days
@@AntonPutra good news, this is interesting! 👍
Kind of an unfair comparison of the meowtrics
i do my best
This is not a valid comparison. Apples to oranges. Nginx is proclaimed in this very video as highly performant at the cost of explicit configuration and Traefik simply cannot do the same because it is solely a reverse proxy. Should have done nginx ingress controller instead.
I'll cover ingress controllers in a separate video in about a week
Where do you see the big performance difference between nginx an ingress nginx?
@@AntonPutra Great! These videos are still invaluable and an inspiration for my own testing. Keep up the great work!
Great video!
thank you!