Diferencia entre revisiones de «Apache»

De Guifi.net - Wiki Hispano

(Enlaces externos)
 
Línea 10: Línea 10:
 
  a2enmod
 
  a2enmod
 
  a2dismod
 
  a2dismod
 
===Módulos utilizados en BlogMail soft===
 
====rewrite====
 
Reescritura de direcciones servidas (generalmente utilizado para transformar páginas dinámicas como php en páginas estáticas html para hacer la navegación más sencilla y organizada para la usuaria o para engañar a los navegantes o a los motores de búsqueda en cuanto a cómo fueron desarrolladas estas páginas).
 
====php4 o php5====
 
Páginas dinámicas en el lenguaje de scripts [[PHP]].
 
====vhost_alias====
 
Crea servidores virtuales en nombres de subdominio
 
NameVirtualHost 217.149.150.61
 
<VirtualHost 217.149.150.61>
 
        Servername doc.blogmail.cc
 
        DocumentRoot /home/blogmail/public_html/documents
 
</VirtualHost>
 
Para habilitar o deshabilitar un servidor virtual:
 
a2ensite
 
a2dissite
 
  
 
===Otros módulos interesantes===
 
===Otros módulos interesantes===
Línea 56: Línea 40:
 
  /etc/init.d/apache2 force-reload
 
  /etc/init.d/apache2 force-reload
  
==== Virtualhost que redireccionen a otro equipo ====
+
=== Habilitar o deshabilitar sitio ===
Muy útil cuando tenemos varias máquinas servidoras web a partir de una misma IP pública. Una de ellas hace de servidora de entrada (la que tiene el puerto 80) y le pasa a la otra las peticiones de los dominios que le toquen:
+
Para habilitar o deshabilitar un servidor virtual:
 
+
  a2ensite
Usaremos los módulos de proxy de apache
+
  a2dissite
# a2enmod proxy proxy_connect proxy_ftp proxy_http
+
y crearemos un virtual host en la servidora de entrada que haga que cualquien petición que vaya a los dominios pertinentes vayan a la otra máquina: en el ejemplo los dominio son [http://213.98.143.33|213.98.143.33] y [http://home.nusepas.com|home.nusepas.com] y la otra máquina tiene la IP local 192.168.1.5.
+
  # vim /etc/apache2/sites-available/home.nusepas.com
+
 
+
<VirtualHost *:80>
+
+
        ServerName 213.98.143.33
+
        ServerAlias home.nusepas.com
+
+
        ProxyRequests off
+
        <Proxy *>
+
                Order deny,allow
+
                Allow from all
+
        </Proxy>
+
+
        ProxyPreserveHost On
+
+
        ProxyPass / http://192.168.1.5/
+
        ProxyPassReverse / http://192.168.1.5/
+
+
</VirtualHost>
+
 
+
Habilitamos el virtual host:
+
# a2ensite home.nusepas.com
+
Y recargamos apache
+
  # /etc/init.d/apache2 reload
+
Listo.
+
 
+
''Nota: otra forma de hacer esto es con el servidor de proxy-cache [[squid]] configurado como proxy reverso.''
+
  
 
==Comandos de interés==
 
==Comandos de interés==
Línea 97: Línea 52:
 
*Ver qué máquinas tienen un servidor web dentro de un rango  
 
*Ver qué máquinas tienen un servidor web dentro de un rango  
 
  nmap -sT -p 80 192.168.2.*
 
  nmap -sT -p 80 192.168.2.*
 
=Administración=
 
*Ver los procesos Apache que están coriendo en la máquina
 
ps ax | grep apache | wc -l
 
En orwell con casi 1GB de RAM tiene 32 procesos de media, bajando el php.ini a 17MB y deshabilitando bm-comments-post.php se llegan a tan sólo 20
 
 
En nodreams, con 512MB de RAM tiene 19 procesos de media
 
  
 
==Errores y soluciones==
 
==Errores y soluciones==
Línea 114: Línea 62:
 
**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)
 
**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
 
**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 ==
 +
{{:bp}}
  
 
=Enlaces externos=
 
=Enlaces externos=

Última revisión de 19:51 3 feb 2014

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.

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

Herramientas personales