Comunidad de diseño web y desarrollo en internet online

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?



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.


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.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate