Apache es el servidor web más popular, y si tiene la intención de trabajar como administrador de Middleware / Sistema / Web, 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 Preguntas de la entrevista de WebSphere, y muchos de ustedes solicitaron escribir sobre Apache Web Server, así que aquí tiene.
Las siguientes preguntas se hacen a menudo en una entrevista desde el nivel principiante hasta el nivel experto. La mayor parte de la organización tendrá Web Server administrado por Middleware / administrador del sistema junto con Application Server y otros componentes.
Comencemos con preguntas y respuestas de entrevistas en tiempo real...
1. ¿Cómo detener / iniciar el servidor web Apache?
Puede reiniciar yendo a la ubicación de la instancia de Apache >> carpeta bin y ejecutando el script apachectl.
./apachectl stop
./apachectl start
También puede usar un script ubicado en /etc/init.d/. En su mayoría, se llamará "apache" o "httpd"
/etc/init.d/apache stop
/etc/init.d/apache start
Otro procedimiento sería utilizar servicios
httpd stop
service httpd start
2. ¿Cuál es el puerto predeterminado para HTTP y HTTPS?
El puerto predeterminado para HTTP es 80 y HTTPS 443. Verifique los puertos predeterminados para otras aplicaciones señaladas aquí.
3. ¿Puede decirme el nombre del archivo de configuración importante?
httpd.conf es el archivo de configuración principal utilizado en Apache.
4. ¿Cómo comprobar la versión del servidor web Apache en ejecución?
Hay varias formas de encontrar esto, pero serían más precisas;
- Iniciar sesión en un servidor web
- Vaya a la instancia de apache y la carpeta bin
- Ejecutó httpd con -v para obtener los detalles de la versión.
[root@lab sbin]# ./httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Jul 18 2016 15:24:00
[root@lab sbin]#
Alternativamente, también puede usar el rpm comando para verificar 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 se está ejecutando un servidor web?
Hay varias formas de encontrar esto.
- Inicie sesión en un servidor web y grep para el proceso "httpd"
ps -ef |grep httpd
- Compruebe si hay alguna alerta en su panel de control.
- Compruebe si su IP de apache: puerto es accesible en el navegador
Ej: http://yourapacheserver.com
- 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.
Usar código fuente - puede descargar la fuente y compilarla.
- Descargue la última versión de http://httpd.apache.org/download.cgi
- Extrae la fuente con
tar
utilidad ogzip
utilidad dependiendo del tipo de archivo:.tar
or.tar.gz
tar xvf httpd-1.2.3.tar
gzip -d httpd-1.2.4.tar.gz
- Navegue hasta donde extrajo la fuente a través del
cd
comando y configurarlo usando el./configure
comando en la terminal - Luego compílelo usando el
make
mando. - Finalmente, usa el
make install
comando para instalarlo.
Si desea conocer más opciones sobre cómo configurarlo, puede hacer uso del configure --help
mando.
Repositorios YUM - si su servidor está conectado a Internet o tiene un repositorio interno, puede usar yum para instalarlo.
yum install httpd
RPM - Puedes descargar lo necesario Paquete RPM y use el comando rpm.
rpm -ivh packagename.rpm
7. ¿Cómo garantizar que Apache escuche solo una dirección IP en el servidor?
Esto a menudo es necesario cuando tiene varias direcciones IP en el servidor. Para asegurarse de que Apache escuche solo en una IP especificada, debe mencionar explícitamente la IP y el puerto en la directiva Listen.
por ejemplo:
Listen 10.10.10.10:80
8. ¿Cómo asegurar que Apache se ejecute con un usuario que no sea root / nadie?
Esto es posible agregando la directiva User & Group en el archivo httpd.conf
User apache
Group apache
El ejemplo de configuración anterior asegurará que comience con el usuario "apache". Debe asegurarse de que existan usuarios en el servidor antes de configurarlo.
9. ¿Cómo desactivo la indexación de directorios?
Puede utilizar “Opciones-Índices” en la directiva de directorio respectiva.
por ejemplo:
<Directory />
Options -Indexes
</Directory>
10. ¿Qué módulo se requiere para que sea posible la redirección?
mod_rewrite es responsable de la redirección, y esto debe ser descomentado en el archivo httpd.conf.
LoadModule rewrite_module modules/mod_rewrite.so
11. ¿Puede cambiar el puerto de escucha predeterminado a otro?
Sí, es posible especificando el número de puerto en el Escucha Directiva.
Ej: para hacer que Apache escuche en el puerto 9000 a la dirección IP 10.10.10.10.
Listen 10.10.10.10:9000
12. ¿Cómo proteger un sitio web alojado en Apache Web Server?
Hay múltiples formas de asegurar el servidor web Apache incluyendo lo siguiente.
- Implementando SSL
- Integración con WAF (Web Application Firewall) como ModSecurity, etc.
- Usar proveedor de seguridad basado en la nube
13. ¿Cuáles son los archivos de registro generados por Apache?
Se crean dos archivos de registro populares;
- access.log: todos los detalles de la solicitud con el código de estado
- error.log: captura todos los errores dentro de apache o conectando al backend
14. ¿Cómo crear un CSR?
Puede utilizar el siguiente comando de OpenSSL o generar RSE en línea.
Para crear una nueva CSR con una clave privada
openssl req -out geekflare.csr -newkey rsa:2048 -nodes -keyout geekflare.key
Primero eche un vistazo al sitio web de la página Hoja de referencia de OpenSSL para más comandos.
15. ¿Qué es el alojamiento virtual?
El alojamiento virtual en Apache le permite alojar varios sitios web en una sola instancia. Puedes crear Basado en IP or Basado en nombre en alojamiento virtual.
16. ¿Qué módulo se necesita para conectarse a WebSphere?
mod_was_ap22_http.so
debe ser agregado en httpd.conf
archivo para integrar con IBM WAS.
17. ¿Cómo poner el nivel de registro en modo de depuración?
A menudo es necesario cuando está solucionando el problema y desea capturar más detalles. Puede cambiar el nivel de registro para depurar asegurándose de lo siguiente en el archivo httpd.conf.
LogLevel debug
18. ¿Qué módulo se requiere para habilitar SSL?
El módulo mod_ssl debe descomentarse 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 predeterminada está establecida en "advertir”Sin embargo, lo siguiente también es posible.
- depurar
- info
- advertir
- para
- crit
- alarma
- emergentes
- error
21. ¿Qué es DocumentRoot?
La directiva DocumentRoot es la configuración en la que puede especificar la ubicación de la carpeta desde donde se servirán los archivos estáticos. También se llama WebRoot.
Default DocumentRoot location is /var/www/html
22. ¿Cómo implementar aplicaciones de guerra o JAVA en Apache?
Me temo que Apache es un servidor web y la implementación de aplicaciones basadas en Java no es posible con él. Sin embargo, puede integrar servidores de aplicaciones Java como WebLogic, WebSphere, JBoss donde puede implementar archivos war, ear.
23. ¿Cuál es la diferencia entre Apache Web Server y Apache Tomcat?
Apache Web es un servidor HTTP para servir contenido estático donde Tomcat es un contenedor de servlets para implementar archivos JSP.
Siempre puede integrar Apache HTTP con Tomcat, sin embargo, según el requisito, debe elegir cualquiera de ellos. Si necesita un servidor web adecuado, entonces Apache HTTP o Tomcat para JSP-Servlet Container.
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 Gato, WebLogic, WebSphere, etc.
25. ¿Cómo configurar el registro de Apache para que capture el tiempo necesario para atender una solicitud?
Puedes añadir "%D”En el archivo httpd.conf bajo la directiva LogFormat para capturar el tiempo de respuesta necesario para atender la solicitud. Mostrará el tiempo en microsegundos.
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
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, like 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, like 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, like Gecko) Chrome/53.0.2785.116 Safari/537.36" 472
26. ¿Qué herramienta utiliza para el análisis de registros?
Tienes que decir la verdad pero para darte una idea puedes usar IrAcceso o unos pocos mencionado aquí.
27. ¿Cuáles son los servidores web en los que ha trabajado junto con Apache?
Nuevamente, es mejor que diga la verdad, pero para que esté al tanto, hay muchos servidores web en el mercado, incluidos los siguientes.
- Nginx
- Microsoft IIS
- LiteSpeed
- GWS
28. ¿Cómo verificar el archivo httpd.conf para asegurar que no haya errores de sintaxis de configuración?
httpd –t le ayudará a comprobar la sintaxis.
[root@lab httpd]# /usr/sbin/httpd -t
Syntax OK
[root@lab httpd]#
Alternativamente, también puede usar el comando apachectl.
[root@lab ~]# /usr/sbin/apachectl configtest
Syntax OK
[root@lab ~]#
29. ¿Cómo realizar la prueba de rendimiento de Apache?
Puedes usar una herramienta como Banco Apache, SIEGE para realizar la prueba de carga en servidores web, incluido Apache. Otra opción para realizar estrés prueba en línea para ver el rendimiento general de la aplicación web bajo carga.
30. ¿Cómo obtener soporte para Apache Web Server si hay algún problema?
Apache es un servidor web de código abierto, por lo que no hay soporte a nivel empresarial. Sin embargo, puede plantear una informe de error o haz 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, puede poner un script en /etc/init.d/ y habilitar inicie en el arranque usando el comando chkconfig
Digamos que crea un archivo llamado apache y poner 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 un servidor web y estas son algunas de las principales diferencias.
- Nginx es un servidor web basado en eventos donde Apache se basa en procesos
- Nginx es conocido por su mejor rendimiento que Apache
- Apache es compatible con una amplia gama de sistemas operativos donde Nginx no es compatible con OpenVMS e IBMi
- Apache tiene una gran cantidad de integración de módulos con el servidor de aplicaciones backend donde Nginx todavía se está poniendo al día
- Nginx es liviano y está capturando la participación de mercado rápidamente. Si es nuevo en Nginx, es posible que le interese consultar mis artículos sobre Nginx.
33. ¿Cómo matarías a Apache si la parada con gracia no funciona?
Si se ejecuta en Linux, puede usar el comando kill.
Descubra el PID de Apache usando ps -ef | grep http
Entonces mátalo
kill $PIDNUMBER
si la muerte normal no funciona, intente matar -9
kill -9 $PIDNUMBER
Si está en Windows, finalice la tarea de 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 usar encontrar comando.
Supongamos que sabe que debe estar en el sistema de archivos / apps, entonces puede usar el siguiente comando.
find /apps -name httpd.conf
Pero si no está seguro de qué sistema de archivos, puede buscar en / file system, pero tenga en cuenta que puede llevar mucho tiempo en función del tamaño general del sistema de archivos.
find / -name httpd.conf
35. ¿Cuáles son los diferentes tipos de servidor web Apache que conoce?
- IBM HTTP Server: conocido como IHS y se utiliza a menudo con IBM WebSphere Application Server
- Oracle HTTP Server: conocido como OHS, a menudo se usa con el servidor Oracle Weblogic.
36. ¿Dónde se encuentra Apache en la ubicación del centro de datos?
Puede explicar en función de su experiencia, sin embargo, normalmente para aplicaciones orientadas a Internet, sería en la red DMZ de Internet y para la intranet, red central.
Pero nuevamente esto diferirá según la aplicación / organización.
37. ¿Cómo ocultar los detalles de la versión del servidor en el encabezado de respuesta HTTP?
Agregue 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 como "APACHE" Solamente.
38. ¿Qué significan los códigos de error HTTP 200, 403 y 503?
- 200 - contenido encontrado y servido OK
- 403 - intentó acceder a un archivo / carpeta restringido
- 503: el servidor está demasiado ocupado para atender la solicitud y, en otras palabras, el servicio no está disponible.
- Remitir Infografía del código de respuesta HTTP para más.
39. ¿Cómo deshabilitar las solicitudes HTTP de seguimiento?
Agregue lo siguiente en el archivo httpd.conf y reinicie la instancia
TraceEnable off
40. ¿Cómo solucionar problemas de conflictos de puertos?
netstat Sería útil para solucionar el problema del conflicto del puerto. Si se ejecutan varias instancias en un solo servidor, se recomienda tener IP absoluta: Puerto configurado para la directiva Escuchar.
41. ¿Cómo instalar el módulo de terceros?
Puedes hacer uso de Caja de herramientas Apache. Una vez descargado, extráigalo usando el tar
utilidad.
tar -xf Apachetoolbox-1.5.72.tar.gz
Navega a la carpeta Apachetoolbox-1.5.72
usando el cd
y ejecute el siguiente comando para seleccionar 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 hosts virtuales?
Puedes hacer uso del ServerAlias
directiva como se muestra a continuación.
ServerName example.com
ServerAlias awesome.com fantastic.com
43. ¿Cómo limitar el tamaño de carga?
Tengo una aplicación web que permite a los usuarios cargar archivos como documentos de Word, pdf, etc. ¿Cómo puedo limitar la carga de archivos por parte de los usuarios?
Puedes hacer uso del LimitRequestBody
directiva para limitar el tamaño del archivo de carga.
<Directory "usr/local/apache2/uploads">
LimitRequestBody 9000
</Directory>
El valor asignado a la LimitRequestBody
permite a Apache aceptar y almacenar cargas de archivos de 9000 bytes por parte de los usuarios. Puede ajustar el valor según el requisito.
44. ¿Cómo restringir el acceso por IP?
Es posible que desee que algunas de las raíces de contexto sean accesibles por IP permitidas. Para hacerlo, puede hacer uso de mod_authz_core or mod_authz_host módulos para restringir el acceso utilizando el Require
Directiva.
Require 10.0.0.2 10.0.0.4 192.168.34.23 192.168.34.23
Al hacer lo anterior, Apache atenderá solicitudes solo si las solicitudes se realizan desde las IP enumeradas.
Necesita especificar el Require
directiva dentro del directorio donde desea permitir o denegar el acceso a los recursos.
Conclusión
Espero que las preguntas y respuestas anteriores le ayuden a prepararse para un administrador de servidor web entrevista.