Apache
De Guifi.net - Wiki Hispano
Apache es un servidor HTTP (web) libre con licencia propia llamada Apache: http://www.apache.org/licenses/ Presenta entre otras características mensajes de error altamente configurables, bases de datos de autenticación y negociado de contenido.
Contenido
Instalación
aptitude install apache2
Módulos
La arquitectura del servidor Apache es muy modular. El servidor consta de una sección core y mucha de la funcionalidad que podría considerarse básica para un servidor web es provista por módulos.
Habilitar o deshabilitar los módulos
a2enmod a2dismod
Otros módulos interesantes
- ssl - Comunicaciones Seguras vía TLS.
aptitude install openssl ssl-cert
openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem a2enmod ssl
- dav - Soporte del protocolo WebDAV (RFC 2518).
- deflate - Compresión transparente con el algoritmo deflate del contenido enviado al cliente.
- auth_ldap - Permite autentificar usuarias contra un servidor LDAP.
- proxy_ajp - Conector para enlazar con el servidor Jakarta Tomcat de páginas dinámicas en Java (servlets y JSP).
- perl - Páginas dinámicas en Perl.
- python - Páginas dinámicas en Python.
Publicar los /home's
# a2enmod userdir
Por defecto la configuración del módulo requiere que cada usuaria cree un subdirectorio llamada exactamente public_html. Ese directorio debería tener al menos permisos de lectura y ejecución para el servidor web. O sea:
~$ mkdir public_html ~$ chmod 0750 public_html ~$ chown user.www-data public_html
Reiniciamos el servidor apache.
/etc/init.d/apache2 force-reload
Habilitar o deshabilitar sitio
Para habilitar o deshabilitar un servidor virtual:
a2ensite a2dissite
Comandos de interés
- Escuchar el tráfico en el puerto 80:
- Ver qué servidor web tiene una máquina desde fuera:
nmap -sV -p 80 nombre_o_IP_de_máquina
- Ver qué máquinas tienen un servidor web dentro de un rango
nmap -sT -p 80 192.168.2.*
Errores y soluciones
- Error
#/etc/init.d/apache2 start (98)Address already in use: make_sock: could not bind to address [::]:80 no listening sockets available, shutting down Unable to open logs
- Solución:
- Esperar a que apache corte todas las conexiones que tenía abiertas, se pueden monitorear escuhando el tráfico en el puerto 80, esta solución puede hacer esperar varios minutos, pero evita el trauma de tener que reiniciar (tal vez no reinicie)
- Si lo anterior no funciona, tal vez exista un problema entre varias versiones de apache u otros servidores escuchando en el puerto 80, en tal caso desinstala de forma que sólo quede uno o cambia los puertos de los demás
Ejemplos reales en servidores autogestionados
Ejemplo de uso real de Apache en Marsupi
Enlaces externos
- Optimizar [un huevo] el Apache (en máquinas potentes con mucha carga, como Menéame), por Ricardo Galli
- Optimizando Apache por Alex Sancho
- Trucos para asegurar apache