On Sat, Oct 11, 2008 at 08:38:52PM +0800, Tim Post wrote: > On Sat, 2008-10-11 at 04:31 -0700, Jeremy Chadwick wrote: > > Is solving this problem *really* the job of a web server? The answer to > > this question should be: no it is not. > > Is that so? > > > > > The web server should handle web server "things". > > Updating a single text configuration file from a central point is not a > 'thing' for web servers to do ?
No. Web servers serve content; web servers do not distribute files to other machines. > > What you're > > describing is the need for either: > > > > 1) A series of administrative scripts that can distribute configuration > > files to numerous servers when changes are made. This is how a lot of > > companies do it. Have you looked at cfengine? Please do. > > And years ago we made fire with sticks. Yes, I have looked at it. Administrative scripts are not something from the 70s. They are a key piece of problem-solving and administrative task completion on UNIX. If you are a system administrator who does not know shell scripting or how to use utilities like scp or rsync, you likely shouldn't be the sole administrator of a system (you should be a junior SA and have someone senior above you who can "show you the ropes"). > > 2) A network-distribution filesystem with no single point of failure. > > DragonflyBSD's HAMMER filesystem can do this I think, FreeBSD has > > ggatec/ggated, and Linux has some software which can do it as well. > > Note that I'm not mentioning NFS because an NFS server is a single > > point of failure (although many companies live with this reality and > > buy something like a Network Appliance filer which is reliable). > > And just to run a reliable web site, you should have to endure this .. > why? Someone hoping to start the next (name some popular thing) should > have to endure this why? Do they not deserve reliability without > mastering their operating system? Item #1 does not require "mastering their operating system". It involves using the *right* software to accomplish the task at hand; why does the web server need to do this job? Why can you not rsync a file to another machine or series of machines using a script, which also SIGHUP the daemon so it re-reads the updated configuration file? This is in no way "mastering an operating system" -- this is being a system administrator. Seriously: this task is VERY simple to accomplish, even in the most bare-bones environments. I recommended cfengine because that software suite was *specifically* engineered to solve the complexities of managing configuration files across multitudes of machines. Use the right tool for the job! Item #2 does add more complexity to the task at hand -- you are absolutely right. I simply offered it as a "lazy alternative" -- you set it up once, it starts working, and *ANY* program will work. You do not need to tell the web server about configuration files or what servers to distribute things to or other such nonsense; you edit a file, it gets distributed to the remote system automatically at the filesystem level, transparently. > What is so inherently wrong about propagating a configuration change to > many nodes, without dlm, such as ocfs2 does now? Why even bother with > the overhead of a cluster or network file system when one is not needed? One of UNIX's many concepts is to keep things segregated, separate, and layered -- while providing ways for each individual thing to talk to another thing using pipes or domain sockets. A web server's job is to serve content over HTTP, not to do things like distribute configuration file changes to machines over a network. Distributing files to multitudes of machine is not the job for a web server. -- | Jeremy Chadwick jdc at parodius.com | | Parodius Networking http://www.parodius.com/ | | UNIX Systems Administrator Mountain View, CA, USA | | Making life hard for others since 1977. PGP: 4BD6C0CB | _______________________________________________ Cherokee mailing list [email protected] http://lists.octality.com/listinfo/cherokee
