Linux
destaca en la ejecución de aplicaciones de servidor gracias a su confiabilidad
y eficiencia. Cuando queremos hablar de un software de servidor la pregunta más
importante es "¿Qué tipo de servicio estoy ejecutando?" ¡Si quieres
proporcionar un servicio de páginas web necesitas un software de servidor web,
no un servidor de correo!
Uno
de los primeros usos de Linux era para servidores web. Un servidor web aloja
contenido para páginas web a las que ve el explorador web mediante el Protocolo
de transferencia de hipertexto (HTTP - Hypertext Transfer Protocol) o su forma
cifrada HTTPS. La propia página web puede ser estática, lo que significa que
cuando el navegador solicita una página, el servidor web envía sólo el archivo
tal y como aparece en el disco. El servidor también puede proporcionar un contenido
dinámico, esto es, el servidor web envía la solicitud a una aplicación que
genera el contenido. WordPress es un ejemplo popular. Los usuarios pueden
desarrollar contenidos a través de su navegador en la aplicación de WordPress y
el software lo convierte en un sitio web completamente funcional. Cada vez que
realizas compras en línea estás viendo un sitio dinámico.
Hoy
en día, Apache es el servidor web dominante. Apache fue originalmente un
proyecto independiente, pero el grupo ha formado la Apache Software Foundation
y mantiene más de cien proyectos de software de código abierto.
Otro
servidor web es nginx con su base en Rusia. Se centra en el rendimiento
haciendo uso de kernels UNIX más modernos y solo se puede hacer un subconjunto
de lo que Apache puede hacer. Más de un 65% de los sitios web funcionan
mediante Apache o nginx.
El
correo electrónico (e-mail) siempre ha sido un uso popular para servidores
Linux. Cuando se habla de servidores de correo electrónico siempre es útil
considerar las 3 funciones diferentes para recibir correo electrónico entre
personas:
Agente
de transferencia de correo (MTA- Mail Transfer Agent) – decide qué servidor
debe recibir el correo electrónico y utiliza el Protocolo simple de
transferencia de correo (SMTP- Simple Mail Transfer Protocol) para mover el
correo electrónico hacia tal servidor. No es inusual que un correo electrónico
tome varios "saltos" para llegar a su destino final, ya que una
organización puede tener varios MTAs.
Agente
de entrega de correo (MDA- Mail Delivery Agent, también llamado el Agente de
entrega local) se encarga de almacenar el correo electrónico en el buzón del
usuario. Generalmente se invoca desde el MTA al final de la cadena.
Servidor
POP/IMAP – (Post Office Protocol e Internet Message Access Protocol) son dos
protocolos de comunicación que permiten a un cliente de correo funcionando en
tu computadora actuar con un servidor remoto para recoger el correo electrónico.
A
veces un software implementará varios componentes. En el mundo de código
cerrado, Microsoft Exchange implementa todos los componentes, por lo que no hay
ninguna opción para hacer selecciones individuales. En el mundo del código
abierto hay muchas opciones. Algunos servidores POP/IMAP implementan su propio
formato de base de datos de correo para el rendimiento, por lo que también
incluirá el MDA si se requiere una base de datos personalizada. Las personas
que utilizan formatos de archivo estándar (como todos los correos en un
archivo) pueden elegir cualquier MDA.
El
MTA más conocido es sendmail. Postfix
es otro MDA popular y pretende ser más simple y más seguro que sendmail.
Si
utilizas formatos de archivo estándar para guardar mensajes de correo
electrónico, tu MTA también puede entregar el correo. Como alternativa, puedes
usar algo como procmail que te permite definir filtros personalizados para
procesar el correo y filtrarlo.
Dovecot
es un servidor POP/IMAP popular gracias a su facilidad de uso y bajo
mantenimiento. Cyrus IMAP es otra opción.
Para
compartir archivos, Samba es el ganador sin duda. Samba permite que una máquina
Linux se parezca a una máquina Windows para que pueda compartir archivos y
participar en un dominio de Windows. Samba implementa los componentes del
servidor, tales como archivos disponibles para compartir y ciertas funciones de
servidor de Windows, así como el cliente para que una máquina de Linux puede
consumir un recurso compartido de archivos de Windows.
Si
tiene máquinas Apple en la red, el proyecto Netatalk permite que tu máquina
Linux se comporte como un servidor de archivos de Apple.
El
protocolo para compartir el archivo nativo para UNIX se llama Sistema de
Archivos de Red (NFS-Network File System). NFS es generalmente parte del kernel
lo que significa que un sistema de archivos remoto puede montarse como un disco
regular, haciendo el acceso al archivo transparente para otras aplicaciones.
Al
crecer tu red de computadoras, necesitarás implementar algún tipo de
directorio. El directorio más antiguo se llama Sistema de nombres de dominio y
se utiliza para convertir un nombre como http://www.linux.com a una dirección
IP como 192.168.100.100 lo que es un identificador único de ese equipo en
Internet. DNS contiene también información global como la dirección de la MTA
para un nombre de dominio proporcionado. Una organización puede ejecutar su
propio servidor DNS para alojar sus nombres públicos y también para servir como
un directorio interno de servicios. El Consorcio de Software de Internet (Internet
Software Consortium), mantiene el servidor DNS más popular, llamado simplemente
bind, esto tras el nombre del proceso que ejecuta el servicio.
El
DNS se centra en gran parte en nombres de equipos y direcciones IP y no es
fácilmente accesible. Han surgido otros directorios para almacenar información
distinta tales como cuentas de usuario y roles de seguridad. El Protocolo
ligero de acceso a directorios (LDAP- Lightweight Directory Access Protocol) es
el directorio más común que alimenta también el Active Directory de Microsoft.
En el LDAP, un objeto se almacena en una forma de árbol (ramificada), y la
posición de tal objeto en el árbol se puede utilizar para obtener información
sobre el objeto, además de lo que se almacena en el objeto en sí. Por ejemplo,
un administrador de Linux puede almacenarse en una rama del árbol llamado
"Departamento TI", que está debajo de una rama llamada
"Operaciones". Así uno puede encontrar personal técnico buscando bajo
la rama del Departamento TI. OpenLDAP es aquí el jugador dominante.
Una
última pieza de la infraestructura de red se denomina el Protocolo de
configuración dinámica de Host (DHCP- Dynamic Host Configuration Protocol).
Cuando un equipo arranca, necesita una dirección IP para la red local por lo
que puede identificarse de manera unica. El trabajo de DHCP sirve para
identificar las solicitudes y asignar una dirección disponible del grupo DHCP.
La entidad Internet Software Consortium también mantiene el servidor ISC DHCP
que es el jugador más común.
Una
base de datos almacena la información y también permite una recuperación y
consulta fáciles. Las bases de datos más populares son MySQL y PostgreSQL. En
la base de datos podrías ingresar datos de venta totales y luego usar un
lenguaje llamado Lenguaje de consulta estructurado (SQL- Structured Query
Language) para agregar ventas por producto y fecha con el fin de producir un
informe.