Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Apache HTTP y Carrera profesional Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Apache es el Servidor Web más popular, y si pretende trabajar como administrador de Middleware/Sistemas/Web, entonces debe estar familiarizado con él. Apache HTTP es un Servidor Web de código abierto para Windows y UNIX.

Hace unos días, escribí sobre las preguntas de la entrevista de WebSphere, y muchos de ustedes me pidieron que escribiera sobre el Servidor Web Apache, así que aquí tienen.

Las siguientes preguntas suelen plantearse en una entrevista desde el nivel principiante hasta el experto. La mayoría de las organizaciones tendrán un Servidor Web gestionado por el administrador de Middleware/Sistema junto con el Servidor de Aplicaciones y otros componentes.

Empecemos con las preguntas y respuestas de la entrevista en tiemporeal..

1. ¿Cómo parar/arrancar el Servidor Web Apache?

Puede reiniciar yendo a la ubicación de la instancia de Apache >> carpeta bin y ejecutar el script apachectl.

./apachectl stop
./apachectl start

También puede utilizar un script ubicado en /etc/init.d/. La mayoría de las veces se llamará "apache" o "httpd".

/etc/init.d/apache stop
/etc/init.d/apache start

Otro procedimiento sería utilizar los servicios

httpd stop
service httpd start

2. ¿Cuál es el puerto por defecto para HTTP y HTTPS?

El puerto por defecto para HTTP es 80 y para HTTPS 443. Compruebe los puertos por defecto para otras aplicaciones listados aquí.

3. ¿Puede decirme el nombre del archivo de configuración importante?

httpd.conf es el principal archivo de configuración utilizado en Apache.

4. ¿Cómo puedo comprobar la versión del servidor web Apache que se está ejecutando?

Hay varias formas de averiguarlo, pero la más precisa sería

  • Iniciar sesión en un servidor web
  • Vaya a la instancia de apache y a la carpeta bin
  • Ejecute httpd con -v para obtener los detalles de la versión.
[root@lab sbin]# ./httpd -v
Versión del servidor: Apache/2.2.15 (Unix)
Servidor construido:   Jul 18 2016 15:24:00
[root@lab sbin]#

Alternativamente, también puede utilizar el comando rpm para comprobar la versión instalada.

[root@lab ~]# rpm -qa |grep httpd
httpd-2.2.15-54.el6.centos.x86_64
httpd-tools-2.2.15-54.el6.centos.x86_64
[root@lab ~]#

5. ¿Cómo saber si un servidor web está funcionando?

Hay varias formas de averiguarlo.

  1. Acceda a un servidor web y busque en grep el proceso "httpd
ps -ef |grep httpd
  1. Compruebe si hay alguna alerta en su panel de monitorización.
  2. Compruebe si su IP:puerto apache es accesible en el navegador

Ej: http://yourapacheserver.com

  1. Compruebe si la IP y el puerto configurados están escuchando en el servidor con netstat
netstat -anlp |grep 80

6. ¿Cómo instalar Apache HTTP?

Hay tres formas posibles de instalarlo.

Utilizando el código fuente - puede descargar el código fuente y compilarlo.

tar xvf httpd-1.2.3.tar
gzip -d httpd-1.2.4.tar.gz
  • Navegue hasta donde extraiga el código fuente mediante el comando cd y configúrelo utilizando el comando . /configure en la terminal
  • Luego compílelo utilizando el comando make.
  • Por último, utilice el comando make install para instalarlo.

Si desea conocer más opciones sobre cómo configurarlo, puede hacer uso del comando configure --help.

Repositorio YUM - si su servidor está conectado a Internet o tiene un repositorio interno, puede utilizar yum para instalarlo.

yum install httpd

RPM - Puede descargar el paquete RPM necesario y utilizar el comando rpm.

rpm -ivh nombrepaquete.rpm

7. ¿Cómo asegurarse de que Apache escucha sólo una dirección IP en el servidor?

Esto es a menudo necesario cuando se tienen múltiples IPs en el servidor. Para asegurarse de que Apache escucha sólo en la IP especificada entonces necesita mencionar explícitamente la IP y el puerto en la directiva Listen.

Ej:

Escuchar 10.10.10.10:80

8. ¿Cómo asegurarse de que Apache se ejecuta con un usuario que no es root/nadie?

Esto se puede hacer añadiendo la directiva User & Group en el fichero httpd.conf

Usuario apache
Grupo apache

El ejemplo de configuración anterior asegurará que se inicie con el usuario "apache". Debe asegurarse de que existen usuarios en el servidor antes de configurarlo.

9. ¿Cómo desactivo la indexación de directorios?

Puede utilizar "Opciones -Indexes" en la directiva de directorio correspondiente.

Ej:

<Directorio />
 Opciones -Índices
</Directorio>

10. ¿Qué módulo es necesario para que la redirección sea posible?

mod_rewrite es responsable de la redirección, y este debe ser descomentado en el archivo httpd.conf.

LoadModule rewrite_module modules/mod_rewrite.so

11. ¿Se puede cambiar el puerto de escucha por defecto por otro?

Sí, es posible especificando el número de puerto en la directiva Escuche.

Ej: para hacer que Apache escuche en el puerto 9000 a la dirección IP 10.10.10.10

Escuchar 10.10.10.10:9000

12. ¿Cómo asegurar un sitio web alojado en un servidor web Apache?

Existen múltiples formas de asegurar el servidor web Apache, entre las que se incluyen las siguientes.

13. ¿Cuáles son los archivos de registro generados por Apache?

Hay dos archivos de registro populares creados;

  • access.log - todos los detalles de la solicitud con el código de estado
  • error.log - captura todos los errores dentro de apache o de conexión al backend

14. ¿Cómo crear una RSE?

Puede utilizar el siguiente comando OpenSSL o generar una RSE en línea.

Para crear una nueva RSE con una clave privada

openssl req -out geekflare.csr -newkey rsa:2048 -nodes -keyout geekflare.key

Consulte la Hoja de trucos de OpenSSL para obtener más comandos.

15. ¿Qué es el alojamiento virtual?

El Hosting Virtual en Apache le permite alojar múltiples sitios web en una única instancia. Puede crear alojamiento virtual basado en IP o basado en nombres.

16. ¿Qué módulo se necesita para conectarse a WebSphere?

debe añadirsemod_was_ap22_http.so en el archivo httpd. conf para integrarse con IBM WAS.

17. ¿Cómo poner el nivel de Log en modo Debug?

A menudo es necesario cuando está solucionando el problema y desea capturar más detalles. Puede cambiar el nivel de registro a depuración asegurándose de lo siguiente en el archivo httpd.conf.

LogLevel debug

18. ¿Qué módulo es necesario para habilitar SSL?

El módulo mod_ssl debe ser descomentado antes de la implementación de SSL.

LoadModule auth_basic_module modules/mod_ssl.so

19. ¿Cuál es el nombre del módulo WebLogic?

mod_wl_22.so

20. ¿Cuál es el nivel de registro disponible en Apache?

La configuración por defecto es "avise a", sin embargo, también es posible lo siguiente

  • depurar
  • información
  • avise a
  • aviso
  • crit
  • alarma
  • emerg
  • error

21. ¿Qué es DocumentRoot?

La directiva DocumentRoot es la configuración donde puede especificar la ubicación de la carpeta desde donde se servirán los archivos estáticos. También se denomina WebRoot.

La ubicación predeterminada de DocumentRoot es /var/www/html

22. ¿Cómo desplegar aplicaciones war o JAVA en Apache?

Me temo que Apache es un servidor web, y el despliegue de aplicaciones basadas en Java no es posible con él. Sin embargo, puede integrar servidores de aplicaciones Java como WebLogic, WebSphere, JBoss donde puede desplegar archivos war, ear.

23. ¿Cuál es la diferencia entre Apache Web Server y Apache Tomcat?

Apache Web es un servidor HTTP para servir contenidos estáticos donde Tomcat es un contenedor de servlets para desplegar archivos JSP.

Siempre puede integrar Apache HTTP con Tomcat, sin embargo, en función de los requisitos deberá elegir uno u otro. Si necesita un servidor web adecuado, entonces Apache HTTP si no Tomcat para el contenedor JSP-Servlet.

24. ¿Cómo puede Apache actuar como servidor proxy?

Puede utilizar un módulo mod_proxy para utilizarlo como servidor proxy. El módulo mod_proxy se puede utilizar para conectarse al servidor backend como TomcatWebLogic, WebSphere, etc.

25. ¿Cómo configurar el registro de Apache para que capture el tiempo que tarda en servir una petición?

Puede añadir "%D" en el archivo httpd.conf bajo la directiva LogFormat para capturar el tiempo de respuesta que se tarda en servir la petición. Mostrará el tiempo en microsegundos.

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i" %D" combinado

Reinicie el servidor web Apache y podrá ver los resultados.

182.19.197.23 - - [02/Oct/2016:10:32:25 0000] "GET / HTTP/1.1" 403 4961 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/53.0.2785.116 Safari/537.36" 1515
182.19.197.23 - - [02/Oct/2016:10:32:25 0000] "GET /icons/apache_pb.gif HTTP/1.1" 304 - "http://lab.geekflare.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/53.0.2785.116 Safari/537.36" 424
182.19.197.23 - - [02/Oct/2016:10:32:25 0000] "GET /icons/poweredby.png HTTP/1.1" 304 - "http://lab.geekflare.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/53.0.2785.116 Safari/537.36" 472

26. ¿Qué herramienta utiliza para el análisis de registros?

Tiene que decir la verdad, pero para darle una idea puede utilizar GoAccess o algunas de las que se mencionan aquí.

27. ¿Cuáles son los servidores web en los que ha trabajado junto con Apache?

De nuevo, es mejor que diga la verdad pero para que se haga una idea, hay muchos servidores web en el mercado entre los que se incluyen los siguientes.

  • Nginx
  • Microsoft IIS
  • LiteSpeed
  • GWS

28. ¿Cómo verificar el archivo httpd.conf para asegurarse de que no hay errores de sintaxis en la configuración?

httpd -t le ayudará a comprobar la sintaxis.

[root@lab httpd]# /usr/sbin/httpd -t
Sintaxis OK
[root@lab httpd]#

Como alternativa, también puede utilizar el comando apachectl.

[root@lab ~]# /usr/sbin/apachectl configtest
Sintaxis OK
[root@lab ~]#

29. ¿Cómo realizar un benchmark de rendimiento de Apache?

Puede utilizar una herramienta como ApacheBench, SIEGE para realizar la prueba de carga en servidores web incluyendo Apache. Otra opción es realizar una prueba de estrés en línea para ver el rendimiento general de la aplicación web bajo carga.

30. ¿Cómo obtener soporte para el servidor web Apache si algo va mal?

Apache es un servidor web de código abierto, por lo que no existe soporte a nivel empresarial. Sin embargo, puede plantear un informe de error o hacer una pregunta en Stack Overflow.

31. ¿Cómo asegurarse de que el servidor web se inicia después de reiniciar el servidor?

Si está ejecutando Linux, entonces puede poner un script en /etc/init.d/ y habilitar que se inicie al arrancar utilizando el comando chkconfig

Digamos que crea un archivo llamado apache y lo pone bajo /etc/init.d

chkconfig --add apache
chkconfig apache on

si está en Windows, asegúrese de que el tipo de inicio está seleccionado "Automático".

32. ¿cuál es la diferencia entre el servidor web Apache y Nginx?

Ambos están categorizados como Servidor Web y estas son algunas de las principales diferencias.

  • Nginx es un servidor web basado en eventos mientras que Apache está basado en procesos
  • Nginx es conocido por un mejor rendimiento que Apache
  • Apache soporta una amplia gama de SO donde Nginx no soporta OpenVMS e IBMi
  • Apache dispone de un gran número de módulos de integración con el servidor de aplicaciones backend donde Nginx aún se está poniendo al día
  • Nginx es ligero y está capturando la cuota de mercado rápidamente. Si es nuevo en Nginx, entonces puede que le interese echar un vistazo a mis artículos sobre Nginx.

33. ¿Cómo matar el Apache si graceful-stop no funciona?

Si se ejecuta en Linux, entonces puede utilizar el comando kill.

Averigüe el PID de Apache usando ps -ef |grep http

Luego mátelo

kill $PIDNUMBER

si kill normal no funciona entonces pruebe kill -9

kill -9 $PIDNUMBER

Si está en Windows, entonces finalice la tarea Apache desde el Administrador de Tareas.

34. ¿Cómo encontrar el archivo httpd.conf si no conoce la ubicación de instalación?

En Linux, puede utilizar el comando find.

Supongamos, que sabe que debe estar en el sistema de archivos /apps entonces puede utilizar el siguiente comando.

find /apps -name httpd.conf

Pero si no está seguro sobre qué sistema de archivos entonces puede hacer find en el sistema de archivos / pero tenga en cuenta que puede tomar mucho tiempo basado en el tamaño total del sistema de archivos.

find / -name httpd.conf

35. ¿Cuáles son los diferentes sabores de servidor web que conoce Apache?

  • Servidor HTTP de IBM - conocido como IHS y a menudo se utiliza con IBM WebSphere Application Server
  • Servidor HTTP de Oracle - conocido como OHS y utilizado a menudo con el servidor Weblogic de Oracle

36. ¿Dónde se encuentra el Apache en la ubicación del centro de datos?

Puede explicarlo basándose en su experiencia, sin embargo, normalmente para las aplicaciones orientadas a Internet, estaría en la red DMZ de Internet y para la intranet, en la red central.

Pero de nuevo esto diferirá en función de la aplicación/organización.

37. ¿Cómo ocultar los detalles de la versión del servidor en la cabecera de respuesta HTTP?

Añada lo siguiente en el archivo httpd.conf y reinicie el servidor web

ServerTokens Prod
ServerSignature Off

Esto ocultará la versión y mostrará el servidor sólo como "Apache“.

38. ¿Qué significan los códigos de error HTTP 200, 403 y 503?

  • 200 - contenido encontrado y servido OK
  • 403 - se ha intentado acceder a un archivo/carpeta restringido
  • 503 - el servidor está demasiado ocupado para servir la petición y en otras palabras - servicio no disponible.
  • Consulte la infografía sobre los códigos de respuesta HTTP para obtener más información.

39. ¿Cómo desactivar el rastreo de peticiones HTTP?

Añada lo siguiente en el archivo httpd.conf y reinicie la instancia

TraceEnable off

40. ¿Cómo solucionar el problema de conflicto de puertos?

netstat sería útil para solucionar el problema de conflicto de puertos. Si se ejecutan varias instancias en un único servidor, sería recomendable tener configurados IP:Puerto absolutos para la directiva Listen.

41. ¿Cómo instalar el módulo de terceros?

Puede hacer uso de Caja de herramientas Apache. Una vez descargado, extráigalo utilizando la utilidad tar.

tar -xf Apachetoolbox-1.5.72.tar.gz

Navegue hasta la carpeta Apachetoolbox-1.5. 72 utilizando el comando cd y ejecute el siguiente comando para seleccionar los módulos para su servidor Apache.

./install.sh

Proporciona módulos como mod_ip_forwarding, mod_auth_mysql y mod_auth_samba para compilar con el servidor web Apache. Aunque puede incluir estos módulos manualmente, es más fácil con Apache Toolbox.

42. ¿Cómo asignar varios nombres a anfitriones virtuales?

Puede hacer uso de la directiva ServerAlias como se muestra a continuación.

ServerName ejemplo.com 
ServerAlias impresionante.com fantastico.com

43. ¿Cómo limitar el tamaño de la carga?

Tengo una aplicación web que permite a los usuarios subir archivos como documentos word, pdf, etc. ¿Cómo puedo limitar la subida de archivos por parte de los usuarios?

Puede hacer uso de la directiva LimitRequestBody para limitar el tamaño de los archivos subidos.

<Directorio "usr/local/apache2/uploads"> 
LimitRequestBody 9000 
</Directorio>

El valor asignado a LimitRequestBody permite a Apache aceptar y almacenar subidas de archivos de 9000 bytes por parte de los usuarios. Puede ajustar el valor en función de sus necesidades.

44. ¿Cómo restringir el acceso por IPs?

Puede que quiera que parte del contexto raíz sea accesible por IPs permitidas. Para ello, puede hacer uso de los módulos mod_authz_core o mod_authz_host para restringir el acceso utilizando la directiva Require.

Require 10.0.0.2 10.0.0.4 192.168.34.23 192.168.34.23

Haciendo lo anterior, Apache sólo servirá peticiones si éstas se realizan desde las IPs listadas.

Debe especificar la directiva Require dentro del directorio en el que desea permitir o denegar el acceso a los recursos.

Conclusión

Espero que las preguntas y respuestas anteriores le ayuden a prepararse para una entrevista de administrador de servidores web.

  • Chandan Kumar
    Autor
    Chandan Kumar es el fundador de Geekflare. Ha ayudado a millones de personas a destacar en el ámbito digital. Apasionado de la tecnología, su misión es explorar el mundo y ampliar el crecimiento de profesionales y empresas.
Gracias a nuestros patrocinadores
Más lecturas sobre Apache HTTP
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder