Analizando como poner en marcha un sitio Web de alto rendimiento I

Posted by Mario on Marzo 12th, 2008

La puesta en marcha de un servicio web de alto rendimiento no nace de la noche a la mañana. Es un trabajo constante en el que tienen que ir de la mano la cordinación de más de un departamento. El departamento de desarrollo tiene que preveer el crecimiento haciendo escalable el desarrollo de la aplicación coordinando con las necesidades y/o requisitos del departamento de sistemas.

Un papel fundamental para su crecimiento es la disponibilidad y velocidad del servicio. Aquí es donde se tiene que analizar como vamos a hospedar la web.

En cuanto al desarrollo hay que preveer la escabilidad técnica por parte del equipo de sistemas para el correcto funcionamiento con tráfico elevado.

El análisis de la base de datos es un papel muy muy pero muy importante en todo esto. Una vez completado el esquema de la BD es importante el definir que tablas tendrán más escritura para poder, en un mañana próspero y posible la separación de BD’s con tablas diferentes en caso de que así lo requiera el proyecto. No obstante, MySQL puede dar mucho juego. Desde el montar un cluster de BD a crear BD’s con replicación o separar las tablas de la BD en diferentes BD con la desventaja que ello podría acarrear en un futuro.

Ahora es cuando nos sentamos a pensar con que tecnología vamos a trabajar. Exceptuando los servicios de Microsoft no conozco ningún sitio web de alto rendimiento que esté funcionando con ISS por lo que por el momento vamos a comenzar con tecnologías libres.

Sistema Operativo: Debian Estable
Servidor Web: Apache 2
Base de datos: MySQL 5.0
Código: PHP 5.1

Tags: web | portal | alto | rendimiento | php | linux

Leer entradas relacionadas:

Apache Benchmark - Prueba de carga a sitios web

Posted by Mario on Febrero 7th, 2008

La utilidad “ab” (Apache Benchmark) sirve para hacer pruebas de carga a un servidor apache.

Por ejemplo 100 consultas, con una concurrencia de 5 usuarios a la vez.


ab -n100 -c5 http://www.dominio.com/

No olvidar el “/” final en el URL

Probar con diferentes niveles de concurrencia. Y no olvidar ver las opciones con ab –info pues es batante flexible.

Usage: ab [options] [http://]hostname[:port]/path
Options are:
    -n requests     Number of requests to perform
    -c concurrency  Number of multiple requests to make
    -t timelimit    Seconds to max. wait for responses
    -p postfile     File containing data to POST
    -T content-type Content-type header for POSTing
    -v verbosity    How much troubleshooting info to print
    -w              Print out results in HTML tables
    -i              Use HEAD instead of GET
    -x attributes   String to insert as table attributes
    -y attributes   String to insert as tr attributes
    -z attributes   String to insert as td or th attributes
    -C attribute    Add cookie, eg. ‘Apache=1234. (repeatable)
    -H attribute    Add Arbitrary header line, eg. ‘Accept-Encoding: gzip’
                    Inserted after all normal header lines. (repeatable)
    -A attribute    Add Basic WWW Authentication, the attributes
                    are a colon separated username and password.
    -P attribute    Add Basic Proxy Authentication, the attributes
                    are a colon separated username and password.
    -X proxy:port   Proxyserver and port number to use
    -V              Print version number and exit
    -k              Use HTTP KeepAlive feature
    -d              Do not show percentiles served table.
    -S              Do not show confidence estimators and warnings.
    -g filename     Output collected data to gnuplot format file.
    -e filename     Output CSV file with percentages served
    -h              Display usage information (this message)
Tags: apache | linux | carga | web

Leer entradas relacionadas:

Ataques de denegación de servicio DOS

Posted by Mario on Diciembre 12th, 2007

Podeis leer información sobre lo que es un ataque de denegación de servicio (DOS) en Wikipedia.

Para que un Servidor Web deje de responder a tiempo enviándole miles de peticiones simultáneas puede llegar a provocar el mal funcionamiento del servicio e incluso el cuelgue del mismo. Una configuración descuidada o consultas creadas de manera inadecuada por el programador de la Web puede hacer que al recibir un ataque de estas características la Web deje de funcionar.

Por eso es recomendable que aunque la Web que se programe sea ligera de contenido que la optimización sea desde el principio del desarrollo. Así que no descuides tus programas por tiempo y/o sencillez aparente.

Tags: dos | ataques | hacking | flood | servidor | web

Leer entradas relacionadas:

Subdominios dinámicos en apache con rewrite

Posted by Mario on Agosto 10th, 2007

Si queremos tener subdominios dinámicos en nuestro sitio web, solo tendremos que crear esta sencilla regla de rewrite.

RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(.+)\.dominio\.com
RewriteRule .* /index.php?s=%1 [L]

De esta manera si recibimos esto: http://usuario.dominio.com la regla lo que ejecuta es http://www.dominio.com/index.php?s=usuario

Obviamente tendremos que tener el apache configurado con el mod_rewrite.

Tags: Apache | Rewrite

Leer entradas relacionadas:


Copyright © 2007 Pensando en Red. All rights reserved.
Cerrar
E-mail It