The common infrastructure of servers for all my websites
April 12th, 2008 | by Santiago Lizardo |In this post I’ll explain you how I structured the components of almost all my websites.
- Programming language: PHP 5.x + eAccelerator (to boost the performance)
- It’s a great programming language with huge features
- The times to edit, test, and if it’s necessary, repair scripts written in PHP are really low
- It’s well supported by the most popular hosting companies
- Database server: MySQL 5.x
- All what you may need in a SQL engine
- Also well supported by hosting companies
- Web server #1: lighttpd 1.x
I use this web server to serve the static content, such as stylesheets, javascripts, images, videos, etc… Doing this, I save a lot of bandwidth (compressing this content), cpu usage (the footprint for this web server is minimal)
- Web server #2: Apache HTTPD 2.2.x
For all the other requests is this web server who delivers the content (mainly dynamically generated by PHP, Python, or Perl).
- Application server: Jetty 6.x
When I need a particular functionality not supported (or partially supported) by PHP, then I go to Java. And due to the limitations on the RAM memory of my server, I need a small, low consuming app server like this one.
- Operating system: GNU/Linux (flavour: openSUSE)
Eventually, when a web site needs an intensive CPU process it’s better to split the main process (the HTTP request) and the task process into two. Running a task within the web server can be really expensive and depending on the restrictions of the web server, the request can be aborted before finished.
I’m preparing a diagram to attach to this post in the next days.
2 Responses to “The common infrastructure of servers for all my websites”
By Jordi Catà on Apr 26, 2008 | Reply
Hola Santiago,
te faltaría un tema de memcache :-).
saludos
By Santiago Lizardo on May 20, 2008 | Reply
Ostras, pues para ser franco, nunca lo he utilizado… ¿En que casos me lo recomendarías?
¡Muchas gracias!