Overlap between kamal-proxy and thruster #55
-
At his talk at Rails World, @kevinmcconnell presented these new features for kamal-proxy: In his presentation, he states that it is intended to be used together with thruster (which he also co-created). I’m slightly confused by this, as thruster has a subset of the features of kamal-proxy. From the introduction post of thruster, its features are:
This is a subset of the features above. Is this a misunderstanding from my side that some of the features on the slide are features in thruster not kamal-proxy? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
Hi @moonglum, I agree it's a bit confusing :) The HTTP caching & X-Sendfile features are provided by Thruster. I tried to mention that in the talk, but may not have made it entirely clear. Those features are handled inside Thruster because it simplifies some aspects of them to be inside the app container. For example, X-Sendfile works by having the application return paths to locations on disk where a file should be served from, so whatever does that serving needs to have access to those paths. Handling that in another container would require configuring some sort of shared volume, whereas running it inside the app container means it can work without any configuration. It's simpler that way. So we use Thruster to add these extra acceleration features, while Kamal Proxy is responsible for serving and routing traffic into the containers. The other part that may be confusing is that Thruster can also be used on its own, without any sort of proxy layer (if you don't need gapless deployments or other Kamal features). That's how the ONCE apps work. Because of that, Thruster can also do the TLS, HTTP/2 parts if necessary. But when running behind Kamal Proxy it won't need to do that, because Kamal Proxy will already have taken care of it. So there is a bit of overlap in features there because of the flexibility in how Thruster can be used. Hope that helps clarify things! |
Beta Was this translation helpful? Give feedback.
Hi @moonglum,
I agree it's a bit confusing :) The HTTP caching & X-Sendfile features are provided by Thruster. I tried to mention that in the talk, but may not have made it entirely clear. Those features are handled inside Thruster because it simplifies some aspects of them to be inside the app container. For example, X-Sendfile works by having the application return paths to locations on disk where a file should be served from, so whatever does that serving needs to have access to those paths. Handling that in another container would require configuring some sort of shared volume, whereas running it inside the app container means it can work without any configuration. It's simpler that w…