title: What exactly is a pre-fork web server model?
body: <p>I want to know what exactly it means when a web server describes itself as a pre-fork web server. I have a few examples such as <a href="http://unicorn.bogomips.org/" rel="noreferrer">unicorn</a> for ruby and <a href="http://gunicorn.org/" rel="noreferrer">gunicorn</a> for python.</p>
  <p>More specifically, these are the questions:</p>
  <ul>
  <li>What problem does this model solve?</li>
  <li>What happens when a pre-fork web server is initially started?</li>
  <li>How does it handle requests?</li>
  </ul>
  <p>Also, a more specific question for unicorn/gunicorn:</p>
  <p>Let's say that I have a webapp that I want to run with (g)unicorn. On initialization, the webapp will do some initialization stuff (e.g. fill in additional database entries). If I configure (g)unicorn with multiple workers, will the initialization stuff be run multiple times?</p>