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.
- 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.
Separar las peticiones de los archivos JS,CSS, IMG.
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?
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.
Por Juan Carlos Cayetano el 25 de Enero de 2012
Por andrewvergel el 25 de Enero de 2012
Por matibs el 25 de Enero de 2012
Saludo
Matias
Por andrewvergel el 26 de Enero de 2012
Por jarlest el 26 de Enero de 2012
Por andrewvergel el 26 de Enero de 2012
Por jarlest el 26 de Enero de 2012
Por andrewvergel el 26 de Enero de 2012
Por Acreonte el 26 de Enero de 2012
Me imagino que los cambios en Apache es si lo hacemos manualmente pero creo que en el cPanel se puede hacer 'visualmente' con un par de clicks.
Gracias por los tips! y quedamos a la espera de los siguientes
Por Joni2Back el 27 de Enero de 2012
Podría optimizarse usando algún servidor mas liviano que apache como lighttpd, nginx o algun otro para los contenidos estáticos.
Del lado de la aplicación se podría generar algún tipo de cache ya sea a nivel http o del tipo memcache/apc etc.
Por Otaku RzO el 27 de Enero de 2012
Por andrewvergel el 27 de Enero de 2012
Por el 08 de Febrero de 2012
Bueno ok nos dices que gracias a los subdominios los.js .css y las imagenes se cargan simultaneamente.
Ok esto me gusta para que el usuario no se aburra en lo que cargan las paginas.
Pero esto de los subdominios como me ayuda a optimizar el costo-beneficio ?
Otra me pasaria unos link's para montar mi propio servidor porfis.
Espero puedas aclararme esto y tambien gracias por el tutorial( de servidores no hay muchos eso creo).
Por Fran el 05 de Noviembre de 2015
Muchas gracias