miércoles, 25 de enero de 2012

Optimizar servidores y subdominios para archivos estáticos

Optimizar servidores y subdominios para archivos estáticos: Hola, espero que estén muy bien todos por aquí. En esta oportunidad quiero hablarles sobre un tema bastante complejo como es la optimización de servidores. Quién no quiere que el costo-beneficio de sus páginas sea el óptimo? Si una web está produciendo dinero y no queremos que todo ese dinero se vaya con el pago hosting y que aumente la capacidad de nuestro servidor?

La respuesta es simple: tenemos que optimizar nuestros servicios dentro del servidor. Yo siempre pienso y digo que un servidor siempre se puede optimizar de alguna u otra forma, pero a veces llega a un punto que no puedes optimizar, sino sólo aumentar el hardware de la red (la conexión entre internet y las máquinas), ya que si tu web se consume toda la red, no habrá servicio que responda así tengas los mejores servidores.

Voy a exponer uno de los casos que me pasaron a mí y como los solucioné. Estos casos funcionan para aplicar en sistemas operativos Linux, en mi opinión el más completo es la distribución Debian.


Caso 1: Servidor para Aplicaciones en PHP



Algunos tips que se me vienen a la cabeza sobre la optimización que le aplico a los servidores.


    Separar las peticiones de los archivos JS,CSS, IMG.

  • Crea un subdominio para cada uno de estos casos: creo los subdominios img.cristalab.com, js.cristalab.com , css.cristalab.com, esto ayuda a que cuando la página esté cargando, estas descargas sean simultáneas.

    Nota: Yo administro mis dns en cdmon.com.


Ahora toca apuntar esos subdominios a una carpeta en donde se encuentran los archivos, esto se realiza creando los bien llamados virtualhost.


Apache


Código :


//En el archivo para apache por defecto para los subdominios agregamos estas lineas
nano /etc/apache2/sites-available/default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerAlias img.codigofuentevisual.com
DocumentRoot /var/www/cristalab/img/
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
<Directory /var/www/cristalab/img/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerAlias js.codigofuentevisual.com
DocumentRoot /var/www/cristalab/js/
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
<Directory /var/www/cristalab/js/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerAlias css.codigofuentevisual.com
DocumentRoot /var/www/cristalab/css/
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
<Directory /var/www/cristalab/css/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
</VirtualHost>




Esto es un ejemplo claro, tenemos que saber en qué carpeta vamos a guardar cada uno de los archivos que queremos servir.


Importándolos en nuestro código


Código :


//el css
<link rel="stylesheet" href="http://css.cristalab.com/style.css" type="text/css" />

//el js, siempre los js al final, antes del body
<script type='text/javascript' src='http://js.cristalab.com/jquery.js?ver=1.7.1'></script>

//una imagen, a las imagenes siempre se les debe definir alto y ancho para que el renderizado de la web sea optimo
<img src="http://img.cristalab.com/cristalab.jpg" alt="STOPsopa" width='290' height='160' />




Conclusión:

Con esto logramos que las peticiones sean respondidas y procesadas por el navegador de nuestro cliente de forma optima.


Caso 2: Porqué todo esta normal en mi servidor o en mis servidores pero mi página no responde?



[nota:4647328b27]Para ver el rendimiento en un servidor linux, se puede instalar HTOP te puede orientar un poco más sobre qué está haciendo el servidor.[/nota:4647328b27]

Este problema es muy común cuando tus servidores se encuentran en una red con poca conectividad a internet, todas las peticiones que recibe el servidor se encolan y nunca son procesadas ya que el router por donde sale a internet esta colapsado.

Hace algún tiempo empecé con esto de configurar mis propios servidores y dije: voy a configurar mis servidores en mi casa. Compré algunas computadoras con un amigo: una para base de datos y otra para aplicaciones. Se configuraron las dos máquinas y monté una de mis web que tiene algo de tráfico, en esos días tendría unos 20 a 30 usuarios máximos recurrentes y se servían muchas imágenes, para resumir me paso eso la conexión en mi casa es de 512kb/s de bajada y de subida menos que eso no se cuanto. Veía los HTOP de cada servidor y nada, 0.00% load balance los servidores estaban bien luego de mucho probar configuraciones de php, cache, mysql, etc. Decidí probar en un hosting de esos compartidos y tarannn la web funcionaba muy bien y soportaba a los clientes.


Conclusión:

Si su servidor está bien de rendimiento o ve que en las horas picos no responde y ya le cambiaste todas las configuraciones anteriormente dadas, no te mates la cabeza, es la conexión y te recomiendo cambiarte de hosting.

Enviar comentario



No hay comentarios:

Publicar un comentario