Desde que publique los artículos en los cuales mostraba como crear un servidor web en una maquina virtual han sido varios los usuarios que han contactado conmigo para resolver algunas dudas al respecto. Algunos han dejado sus dudas en forma de comentarios en las entradas relacionadas y otros lo han hecho por email, por lo cual he decidido publicar este articulo en el cual hago una recopilación de esas preguntas y que va a servir para que cuando un usuario me haga una consulta acerca del servidor yo le pueda remitir a este post y así no tener que escribir varias veces lo mismo, es porque soy un vago y de esta forma las respuestas estarán ya escritas aquí ;D. Conforme pase el tiempo, si alguna de las preguntas que me hagan no esta aquí respondida iré ampliando este articulo.
Voy a empezar por explicar el objetivo de este servidor web. Allá por los inicios de 2013 hice un curso de diseño web en el cual aprendí HTML, CSS, JQUERY y Photoshop. En dicho curso aprendí mucho y me engancho el diseño web, pero cuando hacemos una pagina hay que tener muchas cosas en cuenta, y una de las mas importantes es que dicha pagina web se vea correctamente en los navegadores mas usados. Para comprobar que una pagina web se vea bien en los distintos navegadores la mejor forma de hacerlo es subir dicha web a un servidor y visitarla desde Chrome, Firefox, Internet Explorer y Safari, entre otros. Para probar una web en un servidor tenemos varias opciones:
- Podemos contratar un hosting y un nombre de dominio y subir las web ahí, pero eso cuesta dinero, mínimo unos 30 euros al año, no es mucho pero si lo tenemos gratis mejor ¿no?
- Podemos también crear un servidor LAMP, WAMP o XAMP, pero por experiencia se que esos servidores dan problemas, sobre todo al tratar el PHP.
- La ultima opción es crearnos un servidor web en una maquina virtual, que es lo que yo he hecho y que aprendí a hacerlo en el curso que hice, para mi la mejor opción sin duda.
Por lo cual ese es el objetivo del servidor web que he mostrado como crear. El proceso que llevo a cabo para crearlo tiene como objetivo tener lo mas parecido a un hosting de pago en nuestro propio ordenador sin coste alguno. En cuanto a funcionalidad no va a haber ninguna diferencia entre el servidor web virtual y un hosting de pago, es decir, vamos a poder realizar lo siguiente en los dos casos:
- Vamos a poder alojar paginas web, tantas como queramos, cada una en su directorio.
- Podremos instalar WordPress, Joomla u otros CMS.
- Podremos subir y bajar archivos por FTP.
La única diferencia entre contratar un hosting de pago y usar el servidor web virtual va a ser que el hosting de pago tiene hechos unos ajustes de seguridad que no tiene el servidor web virtual creado por mi. La razón por la cual no he aplicado ningún ajuste de seguridad es porque el servidor web virtual solamente lo uso para probar paginas web hechas por mi o hacer modificaciones en temas de WordPress. Hay que tener en cuenta que tal como esta hecho el servidor web virtual no hay acceso desde fuera de la red, es decir, si creamos el servidor en nuestra casa no se puede acceder a el desde Internet, solamente desde los dispositivos que estén conectados al router que tengamos en casa.
Supongamos que queremos usar este servidor web para alojar una pagina web y ponerla accesible desde Internet como si estuviese en un hosting de pago. Bien, para ello tendríamos que contratar un nombre de dominio en una empresa de pago o bien usar un servicio como www.noip.com, ademas de “tocar” la configuración de nuestro router. Pero para usar esta maquina virtual como un hosting real tendríamos que tener varias cosas en cuenta:
- Si queremos alojar una web en esta maquina virtual para ahorrarnos dinero puede pasar que consigamos precisamente lo contrario. Hay que tener en cuenta que para que la web este accesible las 24 horas del día y los 365 días del año, nuestro ordenador tendrá que estar encendido siempre, si lo apagamos o cerramos la maquina virtual la web no podrá ser visitada. No se cuanto consume un ordenador, pero si hacemos cuentas de lo que nos cuesta en electricidad tenerlo encendido durante un año entero y lo que nos cuesta un hosting, podría ser que perdamos dinero alojando la web en nuestro PC, por lo menos en cuanto a electricidad se refiere.
- Si tenemos algún problema de hardware tendremos que asumir nosotros el coste de la reparación, en cambio si tenemos la web alojada en un hosting de pago, el mantenimiento no supone nada para nosotros ya que en el precio va incluido que la empresa se hace cargo de todo eso. Es mas, algunas empresas garantizan un 99,9% de uptime del servidor, esto significa que nos garantizan que el servidor que aloja nuestra web estará activo el 99,9% del tiempo al cabo de año y, si este porcentaje es mas bajo a final de año podemos reclamar una compensación económica.
- Crear un servidor web en una maquina virtual es sencillo, lo podemos hacer en un par de horas empezando desde cero, pero el mantenimiento es mas complicado y nos puede dar muchos quebraderos de cabeza, sobre todo el tema de la seguridad. Para empezar habría que hacer los ajustes de seguridad necesarios al servidor web, para ello hay que saber hacerlos y eso requiere conocimientos y lleva tiempo, y hay que aplicar lo mismo para el mantenimiento posterior. En caso de no tener los conocimientos necesarios para llevar el tema de la seguridad de un servidor podemos encontrarnos con que la web se pase mas tiempo inactiva por problemas de seguridad al cabo del año que funcionando. Ademas tenemos que hacer ajustes de seguridad en el servidor Apache, en MySQL, en PHP, en FTP y en PHPMyadmin, como he mencionado anteriormente si no tenemos los conocimientos necesarios podemos tener muchos dolores de cabeza.
En el siguiente punto quiero hacer especial hincapié ya que es un tema un poco mas complicado y que es muy importante para una pagina web y es el tema de la conexión a Internet. Para que lo entendáis correctamente os voy a poner un ejemplo con este blog. Si vosotros accedéis a la pagina inicial, a www.elblogdeliher.com, y hacéis click con el botón derecho del ratón en un lugar de la pagina en la que no haya nada y pincháis en la opción “Guardar como” se guarda la web inicial, con todo su código HTML, CSS y la imágenes ademas del Javascript, es decir, todo lo necesario para poder verla en vuestro ordenador sin tener conexión a Internet. Yo he hecho eso y el tamaño de la pagina inicial es aproximadamente 2 MB, esto puede parecer muy poco pero os explico como interpretar este tamaño.
Yo vivo en España y tengo una conexión a Internet contratada con una empresa que me da 10 MB de velocidad. Hay empresas que dan mas, pero la velocidad de que nos venden no es real, yo nunca he descargado archivos a mas de 2MB de velocidad y pocas veces he llegado a 1,5 MB. Esa velocidad que nos venden, 10MB, es la velocidad de bajada, es decir, la velocidad a la que nos descargamos información desde Internet. Cuando visitamos una web nos estamos descargando información, en el caso de los usuarios que acceden a la pagina principal de este blog se descargan los dos 2MB de tamaño que tiene, por poner un ejemplo. Pero cuando nos dicen que contratamos 10 MB de velocidad hay que mirar la letra pequeña para saber la velocidad de subida, que es la mas importante a la hora de alojar una pagina web en nuestro servidor y que suele ser un 10% de la velocidad de bajada. En mi caso al tener 10Mb de velocidad de bajada tengo 1 MB de velocidad de subida, que ademas se reduce y se queda aproximadamente en un 15%, es decir yo no puedo subir información a Internet a mas de 150 KB por segundo, o lo que es lo mismo, 0,15 MB por segundo. Esta es la norma general aplicable a todas las conexiones de Internet en el mercado para el hogar.
Ahora vamos a suponer que tengo alojado mi blog en mi servidor web virtual, y un usuario accede a la pagina principal, la que pesa 2 MB, ese usuario tardaría aproximadamente entre 13 y 20 segundos en ver la pagina web completa lo cual significa que abandonara la pagina antes de que se cargue del todo, esta comprobado que es así en diferentes estudios de SEO, yo he hecho eso muchas veces y seguro que vosotros también. Para calcular los segundos solo hay que dividir los 2MB que pesa la web entre la velocidad de subida que tenemos en nuestra conexión y obtendremos el resultado. Y tardara este tiempo con un solo usuario, pensad que pasaría si 10 usuarios a la vez se conectasen a la pagina web, serian 20MB, ya que cada uno tiene que recibir los 2MB de la pagina, entre 0,15 MB de velocidad, por lo tanto la pagina web no se cargaría completa en todos los ordenadores de las distintas visitas hasta pasados un mínimo de 130 segundos, es decir, 2 minutos y 10 segundos en el mejor de los casos. Esto supondría que todos se marcharían de la web seguro. Para solucionar este problema de velocidad tendríamos que contratar una conexión para servidores, seguramente todas las grandes compañías lo tendrán, pero sera bastante caro, por lo cual tendremos que gastar mas dinero.
Otra pregunta que me han hecho es si la serie de tutoriales en las cuales mostraba como crear este servidor sirven también para crear un VPS, es decir un servidor virtual personal. No he contratado nunca un VPS, por lo cual no lo he podido comprobar, pero en una ocasión lo estuve mirando bastante y leí mucha información al respecto y podría asegurar al 99% que si, pero el tema de la seguridad y el mantenimiento correría de nuestra cuenta. Hay muchas empresas de hosting que ofrecen VPS vacíos para instalar el sistema operativo y convertirlo en servidor, también hay muchas que ofrecen el servidor creado, pero hay que tener mucho cuidado con las empresas de hosting. Muchas nos ofrecen, yo lo he visto, VPS administrados por menos de 10 euros al mes, pero al leer la letra pequeña podemos ver que ofrecen 2 horas al mes de administración y a partir de ese tiempo cobran a 20 euros la hora extra, o bien dentro de lo que llaman administrado solo incluyen actualizaciones de software, lo cual podemos hacerlo nosotros mismos con un solo comando vía SSH. Contratar un VPS realmente administrado nos va a costar mínimo unos 40 euros al mes en una empresa decente y eso todavía es barato.
También me han preguntado si se puede instalar el servidor web virtual en una partición aparte del sistema operativo que tengan instalado. Se puede hacer eso, pero si enciendes el ordenador y elijes iniciar con la partición en la que no esta el servidor, es como si estuviese apagado, por lo cual la pagina web que tengas alojada en el no se podrá visitar.
Otra pregunta que me han hecho es que son las Guest Additions y para que sirven. Las GA, por explicarlo de alguna forma, es un CD con drivers para que el sistema operativo que tengamos instalado en la maquina virtual funcione mejor y tenga funcionalidades extra. Al instalar las GA la maquina virtual funcionara mas fluida, los gráficos serán mejores y podremos usar directorios compartidos o las conexiones USB dentro de ella.
Bueno, por ahora voy a dejar este articulo así, si recibo nuevas preguntas o dudas las iré explicando aquí. Espero haberme explicado bien y que no me haya olvidado de nada. Un saludo.