簡體   English   中英

Apache httpd和Tomcat如何協同工作?

[英]How do Apache httpd and Tomcat work together?

我正在繼承一個涉及Java Web應用程序的項目,該應用程序的后端由Apache httpd / Tomcat組合提供支持。 Web服務器用於回送JS,靜態內容和執行常規負載平衡,而Tomcat通過單個WAR文件回送JSP。

我將在今天或明天稍后訪問代碼庫,但是想提前嘗試做一些研究。

我的問題可以歸結為: 這兩個如何一起工作?

  • 誰首先收到HTTP請求?
  • httpd如何知道何時將JSP請求轉發到Tomcat,或僅僅響應請求本身?
  • httpd如何“傳遞”請求,並從Tomcat“接收”響應? 是否只是將請求/響應“復制並粘貼”到Tomcat正在偵聽的端口上? 是否存在某種操作系統級進程間通信? 等等。

這些只是技術如何相互協作的一般性問題。 提前致謝!

誰首先收到HTTP請求?

阿帕奇幾乎可以肯定。 但是,可能存在直接與Tomcat對話的管理進程。

httpd如何知道何時將JSP請求轉發到Tomcat,或僅僅響應請求本身?

從它的配置。 具體情況會有所不同。 例如,它可能使用mod_jkmod_jk2 ,在這種情況下,您將在配置文件中找到JkMount指令,例如:

JkMount /*.jsp ajp13_worker

...告訴它將站點根目錄中的請求傳遞給匹配*.jspajp13_worker ,后者在workers.properties文件中定義。

或者它可以在簡單的HTTP 反向代理安排中設置。 或者是其他東西。

httpd如何“傳遞”請求,並從Tomcat“接收”響應?

這取決於配置; 它可能是HTTP,可能是AJP ,也可能是使用其他模塊。

是否只是將請求/響應“復制並粘貼”到Tomcat正在偵聽的端口上?

有點。 :-)請參閱上面的反向代理鏈接。

是否存在某種操作系統級進程間通信?

是。 AFAIK,它是所有基於套接字的(而不是說,共享內存的東西),這意味着(除其他外)Tomcat和Apache不需要在同一台機器上運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM