pagina last jakarta instalar contenedor java apache tomcat web-applications war

java - last - pagina principal de tomcat



¿Cómo funcionan Apache httpd y Tomcat? (1)

Estoy heredando un proyecto que involucra una aplicación web de Java cuyo back-end está impulsado por un combo Apache httpd / Tomcat. El servidor web se utiliza para servir JS de vuelta, contenido estático y para realizar un balanceo de carga general, y Tomcat está devolviendo los JSP a través de un único archivo WAR.

Recibiré acceso a la base de códigos más tarde hoy o mañana, pero quería intentar investigar un poco antes.

Mi pregunta se puede resumir como: ¿cómo funcionan estos dos juntos?

  • ¿Quién primero recibe solicitudes HTTP?
  • ¿Cómo sabe httpd cuándo reenviar las solicitudes JSP a Tomcat, o simplemente responder a una solicitud en sí?
  • ¿Cómo httpd "pasa" la solicitud y "recibe" la respuesta de Tomcat? ¿Simplemente "copia y pega" la solicitud / respuesta a un puerto en el que está escuchando Tomcat? ¿Hay algún tipo de comunicación entre procesos en el sistema operativo? Etc.

Estas son solo preguntas generales sobre cómo las tecnologías colaboran entre sí. ¡Gracias por adelantado!


¿Quién primero recibe solicitudes HTTP?

Apache, casi seguro. Sin embargo, podría haber procesos administrativos que hablen directamente con Tomcat.

¿Cómo sabe httpd cuándo reenviar las solicitudes JSP a Tomcat, o simplemente responder a una solicitud en sí?

De su configuración Los detalles variarán. Podría, por ejemplo, usar mod_jk o mod_jk2 , en cuyo caso encontrará JkMount directivas JkMount en los archivos de configuración, por ejemplo:

JkMount /*.jsp ajp13_worker

... que le indica que pase las solicitudes en la raíz del sitio para los archivos que coincidan con *.jsp ajp13_worker al ajp13_worker , que se define en el archivo workers.properties .

O podría configurarse en una simple disposición de proxy inverso HTTP. O algo mas.

¿Cómo httpd "pasa" la solicitud y "recibe" la respuesta de Tomcat?

Depende de la configuración; podría ser HTTP, podría ser AJP o podría estar utilizando algún otro módulo.

¿Simplemente "copia y pega" la solicitud / respuesta a un puerto en el que está escuchando Tomcat?

Más o menos :-) Vea el enlace de proxy inverso arriba.

¿Hay algún tipo de comunicación entre procesos en el sistema operativo?

Sí. AFAIK, todo está basado en socket (en lugar de, por ejemplo, cosas de memoria compartida), lo que significa (entre otras cosas) que Tomcat y Apache no necesitan ejecutarse en la misma máquina.