Apache Tutoriales para Principiantes

¿Qué es Apache?

Apache es una pieza notable de software de aplicación. Es la aplicación de servidor Web más utilizada en el mundo con más del 50% de participación en el mercado de servidores web comerciales. Apache es la aplicación de servidor Web más utilizada en sistemas operativos tipo Unix, pero se puede usar en casi todas las plataformas como Windows, OS X, OS/2, etc., La palabra, Apache, ha sido tomada del nombre de la tribu nativa americana ‘Apache’, famosa por sus habilidades en la guerra y la creación de estrategias.

es una aplicación de servidor web modular basada en procesos que crea un nuevo hilo con cada conexión simultánea. Admite una serie de características; Muchas de ellas se compilan como módulos separados y extienden su funcionalidad principal, y puede proporcionar todo, desde el soporte del lenguaje de programación del lado del servidor hasta el mecanismo de autenticación. El alojamiento Virtual es una de esas características que permite que un solo servidor Web Apache sirva a varios sitios web diferentes.,

Cómo instalar Apache

Hay muchas maneras de instalar el paquete o aplicación. Se enumeran a continuación –

  1. Una de las características de esta aplicación web de código abierto es que cualquiera puede hacer instalador según su propio entorno. Esto ha permitido a varios proveedores como Debian, Red Hat, FreeBSD, SUSE, etc. para personalizar la ubicación del archivo y la configuración de apache teniendo en cuenta otras aplicaciones instaladas y el sistema operativo base.,
  2. Además de instalarlo desde un instalador basado en proveedores, siempre existe la opción de compilarlo e instalarlo desde el código fuente. La instalación de Apache desde el archivo fuente es independiente de la plataforma & funciona para todos los sistemas operativos.

el servidor web apache es una aplicación modular donde el administrador puede elegir la funcionalidad requerida e instalar diferentes módulos según su requerimiento.,

todos los módulos se pueden compilar como Objetos Compartidos dinámicos (DSO es un archivo de objeto que puede ser compartido por varias aplicaciones mientras se ejecutan) que existe por separado del Archivo principal de apache. El enfoque DSO es muy recomendable, hace que la tarea de agregar/eliminar/actualizar módulos de la configuración de los servidores sea muy simple.

instale Apache: Linux Platform

en sistemas basados en Red Hat o rpm

Si está utilizando una distribución basada en rpm (RedHat Package Manager es una utilidad para instalar aplicaciones en sistemas Linux), por ejemplo., Red Hat, Fedora, CentOs, Suse, puede instalar esta aplicación ya sea mediante el administrador de paquetes específico del proveedor o directamente construyendo el archivo rpm desde el tarball de origen disponible.

Puede instalar Apache a través del gestor de paquetes predeterminado disponible en todas las distribuciones basadas en Red Hat como CentOs, Red Hat y Fedora.

# yum install httpd

el código fuente de apache se puede convertir en un archivo rpm usando el siguiente comando.

# rpmbuild -tb httpd-2.4.x.tar.bz2

es obligatorio tener instalado el paquete-devel en su servidor para crearlo .archivo rpm del código fuente.,

una vez que convierta el archivo de origen en un instalador rpm, puede usar el siguiente comando para instalar Apache.

# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm

después de la instalación el servidor no se inicia automáticamente, para iniciar el servicio, debe usar cualquiera de los siguientes comandos en Fedora, CentOS o Red Hat.

# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start

instalar Apache desde el código fuente

instalar apache desde el código fuente requiere que el paquete-devel esté instalado en su servidor. .Puede encontrar la última versión disponible de Apache, puede descargarla aquí ., Una vez que descargue el archivo fuente, muévalo a la carpeta/usr/local / src.

para ver todas las opciones de configuración disponibles para Apache, puede usar ./ configure-opción de ayuda. La opción de configuración más común es-prefix={nombre del directorio de instalación}.

el ejemplo anterior muestra la compilación de Apache dentro del directorio /usr/local/apache con la capacidad DSO. La opción-enable-so, puede cargar los módulos requeridos a apache en tiempo de ejecución a través del mecanismo DSO en lugar de requerir una recompilación.,

una vez que se complete la instalación, puede navegar por la página predeterminada de los servidores web con su navegador favorito. Si firewall está habilitado en su servidor, debe hacer una excepción para el puerto 80 en su firewall del sistema operativo. Puede usar el siguiente comando para abrir el puerto 80.

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

service iptables save

puede ver la pantalla de bienvenida predeterminada de Apache2 navegando por la dirección IP de su servidor.

¿Qué es el Host Virtual?

un servidor Web Apache puede alojar varios sitios web en el mismo servidor., No necesita una máquina servidor separada y un software apache para cada sitio web. Esto se puede lograr utilizando el concepto de Host Virtual o VHost.

cualquier dominio que desee alojar en su servidor web tendrá una entrada separada en el archivo de configuración de apache.

tipos de Apache Virtualhost

  1. host Virtual basado en nombre
  2. host virtual basado en dirección o IP y.

Host Virtual basado en nombre

el hosting virtual basado en nombre se utiliza para alojar varios sitios virtuales en una sola dirección IP.,

para configurar el alojamiento virtual basado en nombres, debe establecer la dirección IP en la que recibirá las solicitudes de Apache para todos los sitios web deseados. Puede hacer esto mediante la directiva NameVirutalHost dentro de la configuración de apache, es decir, httpd.conf / apache2.archivo conf.

Apache virtual host ejemplo:

Puede agregar tantos hosts virtuales, según sus requisitos., Puede verificar sus archivos de configuración web con:

#httpd –tSyntax OK

Si el archivo de configuración tiene una sintaxis incorrecta, lanzará un error

host Virtual basado en IP

para configurar el alojamiento virtual basado en IP, necesita más de una dirección IP configurada en su servidor. Por lo tanto, el número de vhost apache dependerá del número de direcciones IP configuradas en su servidor. Si su servidor tiene 10 direcciones IP, puede crear 10 hosts virtuales basados en IP.

En el diagrama de arriba dos sitios web ejemplo1.,com y example2.com se les asignaron diferentes IPs y están utilizando alojamiento virtual basado en IP.

¿Qué Apache necesita para Ejecutar el Archivo Php?

ejecutar archivos Php en Apache necesita mod_php habilitado en su servidor. Permite a Apache interpretar .Archivos Php. Tiene manejadores Php que interpretan el código Php en apache y envían HTML a su servidor web.

Si mod_php está habilitado en su servidor, tendrá un archivo llamado php.conf en /etc/httpd / conf.d/ directorio., También puede comprobarlo con:

httpd -M | grep "php5_module"

la salida será similar a:

controladores Php en Apache

  • mod_php
  • CGI
  • FastCGI
  • suphp

mod_php es el controlador php más antiguo, hace que PHP forme parte de Apache y no llama a ningún proceso PHP externo. Este módulo está instalado por defecto en todos los repositorios de distribución Linux, por lo que habilitar/deshabilitar este módulo es muy fácil.,

si está utilizando FastCGI como su controlador de PHP, puede configurar varias versiones de PHP para que sean utilizadas por diferentes cuentas en su servidor.

FastCGI es decir, mod_fastcgi es una extensión de mod_fcgid, donde como mod_fcgid es una alternativa de alto rendimiento de CGI es decir, mod_cgi . Inicia un número suficiente de instancias de CGI para manejar solicitudes Web concurrentes. También utiliza suexec para apoyar a diferentes usuarios con sus propias instancias de PHP y mejora la seguridad web.

ejecutar archivos ruby en Apache necesita que mod_ruby esté habilitado. Apache También puede manejar archivos ruby a través de FastCGI., Es posible usar varias versiones de ruby con la ayuda de mod_fcgid, es decir, FastCGI.

También puede instalar apache passenger y configurar Apache para que lo use para servir páginas ruby.

(Phusion Passenger también conocido como «passenger» es un módulo de servidor web gratuito que está diseñado para integrarse con Apache y Nginx)

pasos para instalar mod_ruby en su servidor –

cómo ejecutar Ruby con Apache

tenemos que agregar el módulo mod_ruby a la configuración de Apache, es decir,/etc/httpd / conf.D / ruby.conf y agregue la siguiente línea.

LoadModule ruby_module modules / mod_ruby.,así que

si desea habilitar o deshabilitar estos módulos, debe editar el archivo de configuración de apache y comentar o descomentar estos módulos, si el servidor web ya está compilado con estos módulos.

cómo proteger el servidor Web Apache

proteger su servidor web es muy importante, significa permitir que otros vean solo la información deseada & proteger sus datos y restringir el acceso.

estas son cosas comunes que mejoran la seguridad de sus servidores web Apache.,

1) ocultar la versión de Apache Y LA INFORMACIÓN DEL SISTEMA OPERATIVO:

Apache muestra su versión y el nombre del sistema operativo en errores como se muestra en la siguiente captura de pantalla.

un hacker puede usar esta información para lanzar un ataque utilizando las vulnerabilidades disponibles públicamente en la versión particular del servidor o del sistema operativo.

para evitar que el servidor Web Apache muestre esta información, tenemos que modificar la opción «firma del servidor» disponible en el archivo de configuración de apache., Por defecto, es «on», tenemos que configurarlo»off».

vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod

También hemos establecido «ServerTokens Prod» que le dice al servidor web que devuelva solo apache y suprima la versión principal y menor del sistema operativo

Después de modificar el archivo de configuración, debe reiniciar / recargar su servidor web apache para que sea efectivo.,

service httpd restart

2) Desactivar la lista de directorios

si el directorio raíz del documento no tiene un archivo de índice, por defecto su servidor web apache mostrará todo el contenido del directorio raíz del documento.

Esta característica se puede desactivar para un directorio específico a través de la» directiva de Opciones » disponible en el archivo de configuración de Apache.,

<Directory /var/www/html> Options -Indexes</Directory>

3) desactivar innecesarios módulos

es una buena práctica para desactivar todos los módulos que no están en uso. Puede ver la lista de módulos habilitados disponibles en su archivo de configuración de apache –

muchos de los módulos listados pueden deshabilitarse como mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, ya que apenas son utilizados por ningún servidor web de producción.

vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules/mod_auth_digest.so

una Vez que usted comentó el módulo, guarde el archivo.,

reinicie los servicios apache con el siguiente comando.

/etc/init.d/httpd restart

4) restringir el acceso a archivos fuera del directorio raíz web

si desea asegurarse de que los archivos que están fuera del directorio raíz web no sean accesibles, debe asegurarse de que el directorio esté restringido con «Permitir» y «denegar opción» en el archivo de configuración del servidor web.

<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>

Una vez que restrinja el acceso fuera de la raíz web directoy, no podrá acceder a ningún archivo ubicado en ninguna otra carpeta de su servidor web, obtendrá el código de retorno 404.,

5) usando mod_evasive para refutar el ataque DoS

Si desea proteger su servidor web de Dos (es decir, denegación de servicio) debe habilitar el módulo mod_evasive. Es un módulo de terceros que detecta el ataque Dos y evita que el ataque haga tanto daño como lo haría si se deja que siga su curso. Se puede descargar aquí.,

descargue el archivo anterior

6) usando mod_security para mejorar la seguridad de apache

Este módulo funciona como un firewall para Apache y le permite monitorear el tráfico en tiempo real. También evita que el servidor web de ataques de fuerza bruta. El módulo mod_security se puede instalar con el gestor de paquetes predeterminado de su distribución.

7) limitar el tamaño de la solicitud

Apache no tiene ninguna restricción sobre el tamaño total de la solicitud http que podría conducir a un ataque DoS., Puede limitar el tamaño de la solicitud de una directiva de Apache «LimitRequestBody» con la etiqueta de directorio. El valor se puede establecer cualquier cosa de 0 a 2 GB (es decir, 2147483647 bytes) según su requisito.

<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>

formato de Registro de Apache

Los registros de Apache proporcionan información detallada que ayuda a detectar problemas comunes con el servidor.

para crear registros de acceso, mod_log_configmodule debe estar habilitado.

tres directivas disponibles en el archivo de configuración de apache, es decir,

  • TransferLog: creación de un archivo de registro.
  • LogFormat: especificar un formato personalizado.,
  • CustomLog: crear y formatear un archivo de registro.

la directiva TransferLog está disponible en el archivo de configuración de apache y gira los archivos de registro del host virtual según los parámetros establecidos.

dos tipos de formato de Registro Apache

  • formato de registro común
  • formato de Registro combinado.

puede habilitarlos editando el archivo de configuración de apache, es decir, apache2.conf (Debian / ubuntu) o httpd.,archivo conf (sistemas basados en rpm)

formato de registro común

LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common

registro común generado por Apache

 client denied by server configuration: /export/home/live/ap/htdocs/test

formato de Registro combinado

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined

Aquí,

  • %H es el host remoto
  • %L es la identidad del usuario determinada por identd
  • %U es el nombre de usuario determinado por la autenticación HTTP
  • %t es la hora en que el servidor terminó de procesar la solicitud.
  • %r es la línea de solicitud del cliente. («GET / HTTP / 1.,0»)
  • %>s es el código de Estado enviado desde el servidor al cliente (500, 404, etc.)
  • %b es el tamaño de la respuesta al cliente (en bytes)
  • Referer es la página que enlaza a esta URL.
  • User-agent es la cadena de identificación del navegador.

Registro combinado generado por Apache:

el registro personalizado crea un archivo de registro separado para cada Host Virtual en su servidor. Debe especificarse en la sección virtual host del archivo de configuración.,

Puede ver la configuración del host virtual mencionada a continuación, el registro generado será personalizado para ese host virtual y el formato se combinará.

Configurar su primera Producción de servidor Web

1. Para tener un servidor web de producción en ejecución, necesita un nodo dedicado (instancia física/Virtual o en la nube) que ejecute Linux/Unix, Windows, MacOS, etc.

2. El servidor web debe tener una conexión de red directa y una dirección staticIP configurada en él.

3., Necesita tener todos los módulos necesarios para ejecutar páginas web. Si un servidor web procesa páginas PHP, necesita tener habilitado el módulo PHP.

  1. también necesita tener una buena aplicación Antivirus configurado y en ejecución para proteger el Servidor Web de Malware o ataques de Virus. También necesita mecanismo para actualizar la aplicación antivirus/anti malware configurada de forma regular sin ninguna intervención manual con el fin de obtener el máximo beneficio de ellos.,
  2. Si tiene cientos de dominios alojados en su servidor web, debe tener que implementar limitaciones en la cuota del sistema de archivos para cada dominio, el número de bases de datos que cada dominio puede crear, el número de cuentas de correo electrónico por dominio, etc.
  3. Si su servidor web ha sido configurado para servicios de alojamiento compartido, los usuarios de su servidor web deben estar restringidos. Un usuario de alojamiento compartido debe tener el menor privilegio de usuario para que no dañe archivos importantes & rompa todo el servidor., Apache no proporciona ninguna de estas funcionalidades y necesita diferentes aplicaciones de terceros, personalización del sistema operativo para lograr esto.
  4. si está agregando un nuevo dominio en su servidor web, necesita editar cientos de archivos de configuración para habilitar todas las funciones para el dominio agregado.
  5. si uno de los dominios alojados requiere una configuración PHP diferente que el resto de los dominios, implementar esto en el servidor Web Apache central es muy complejo y necesita la personalización de su servidor web en gran medida.,
  6. Un servidor web de producción necesita un firewall para bloquear el tráfico no deseado que podría causar una alta carga en su servidor. Implementar reglas IPTABLE con la línea de comandos es muy complejo. Necesita experiencia en el entorno Core Linux/Unix para escribir reglas de firewall efectivas para bloquear el tráfico no deseado. IPTABLE se basa en el módulo netfilter; es un firewall a nivel de sistema operativo que permite a un administrador crear reglas para el tráfico entrante/saliente en el servidor.
  7. Un servidor web de producción requiere varias aplicaciones diferentes como correo electrónico, FTP para cargar archivos, Sistema de nombres de dominio para dominios estacionados., La gestión de todas estas aplicaciones en un sistema Linux/Unix requiere experiencia en las respectivas tecnologías.

por lo tanto, se puede decir que administrar un servidor web para múltiples dominios es una tarea muy compleja y requiere editar cientos de archivos de configuración, personalizando cada aplicación para cumplir con el resultado deseado. Solucionar cualquier error de configuración será muy difícil para los principiantes.

la solución que utiliza Cpanel o software similar

Cpanel proporciona una forma gráfica de administrar su servidor web., Está destinado a proporcionar servicios de alojamiento masivo que es fácil de usar y configurar. cPanel ha reducido las barreras técnicas a la entrada en la gestión de hosting y servidores web. Facilita la tarea compleja, proporciona muchas interfaces web útiles y fáciles de usar que realizan tareas comunes de administración del sistema necesarias para operar un servidor web.

cPanel compila su propia versión de software.

Si tienes que recompilar tu servidor web es decir., apache en una plataforma Linux normal, debe seleccionar/buscar manualmente el módulo que se requiere. cPanel proporciona la funcionalidad Easyapache que es un método de compilación de servidor web basado en scripts.

no sólo proporciona servicios web, sino también de Correo, DNS, FTP y muchos más servicios que se requiere para su aplicación web.,

una tarea que necesita experiencia en el alojamiento basado en Linux / Unix como instalar SSLs, recompilar Apache con diferentes módulos PHP, actualizar la seguridad Web, configurar reglas iptables efectivas, Agregar usuarios ftp, crear cuentas de correo para cada dominio, escanear la raíz de su documento con antivirus y crear bases de datos son fáciles de completar con cPanel.

Proporciona una gran cantidad de scripts que solucionan, instalan y solucionan problemas de tareas administrativas comunes.

Proporciona una funcionalidad de copia de seguridad y restauración que elimina la necesidad de copiar manualmente los archivos al almacenamiento de copia de seguridad., Si está haciendo una copia de seguridad de su dominio, cPanel creará un archivo tar que contendrá la carpeta raíz del documento, cuentas de correo electrónico y correos electrónicos, Cuentas ftp, bases de datos, registros DNS y otras aplicaciones.

también proporciona una documentación robusta, y tiene una gran comunidad de usuarios donde se puede discutir y obtener solución de sus problemas.

por lo tanto, se puede decir que cPanel es una mejor aplicación para administrar su servidor web con las características requeridas. Le proporciona una interfaz fácil de usar para administrar su dominio y un mecanismo para evitar la complejidad de administrar el servidor web principal.,

hay muchos productos competidores para cPanel como Plesk, ISPConfig, Ajenti,Kloxo, Open Panel, Zpanel, etc.

Leave a Comment