Settings

Theme

Server Farm Setup for Knife Depot

musumeche.com

23 points by smusumeche 10 years ago · 18 comments

Reader

brianwawok 10 years ago

Thoughts as I run a similar (but completely different) setup on DO.

1) Have you considered DNS round robin for your nginx and varnish servers? Running 2 of each (at half size) would let either one die and nothing bad happen to your site.

2) Are you ok with MongoDB being a SPOF?

3) Are you okay with your main DB being a SPOF?

I ask this not to be snarky, but I see that you are 84% of the way to having a SPOF proof setup, but not quite all the way there. I know I sleep a little better at night knowing that if my nginx box blows up, I have more with DNS round robin to keep everything running till the morning.

  • smusumecheOP 10 years ago

    Good suggestions! The only issue I see is that if the traffic was split between two different varnish servers, the cache would take twice as long to "warm".

    • brianwawok 10 years ago

      Yah that is true. I would still prefer a slower to warm cache than a 1 server dies the entire app is dead, right? Depends on the app I spose.

oceanic 10 years ago

Nice diagram, I'm borrowing it as a reference for the setup I'm going to be designing for work soon :-)

Did you consider running nginx for your PHP application servers as well?

Also, can I ask what sort of traffic you get per {{ time period }} ??

  • smusumecheOP 10 years ago

    Not that much. Apache gets about 30-40 requests per second on average. However, this is with Varnish handling a lot of requests that never get sent to the backend.

nodesocket 10 years ago

I would remove varnish and use nginx anyday. Varnish config makes baby jesus cry.

heydonovan 10 years ago

Like others have said, I'd ditch Apache/Varnish for Nginx/PHP-FPM with the ngx_cache_purge module. That's what I've done, and it's far easier to maintain. The VCL language has always struck me as overly complicated, but that's just me. Any reason you chose MongoDB over Redis? (I work with MongoDB and Redis on a daily basis, so I was just curious as to why you chose one over the other for session storage).

  • smusumecheOP 10 years ago

    I chose MongoDB because Symfony has a built-in MongoDB session handler that is included with the framework.

mfr8 10 years ago

That's a great diagram. What do you use to create your diagrams?

icpmacdo 10 years ago

Would it be possible to take something like that UML, package it up in Docker and have it deploy to your vps in a more complex heroku way? I think that would solve a few common problems.

  • mrweasel 10 years ago

    I can't really figure out if you're being sarcastic or not. There's really no need to add complexity to a setup this simple. Docker would just be another tool to learn and maintain, with very little gain.

mattkrea 10 years ago

Why do you dislike NGINX?

  • smusumecheOP 10 years ago

    I don't dislike it at all. I just was hoping to have varnish handle everything on that server.

    • mattkrea 10 years ago

      Ah ok, gotcha. As I have to maintain a few legacy PHP servers.. I would strongly recommend you take a look at NGINX + PHP-FPM replacing Apache too so you can simplify the stack a bit.

      NGINX is pretty awesome as a reverse proxy (as you must know) but its very nice when you use it as your web server too.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection