Apache-2.2

如何在 server.xml 中為 Apache - Tomcat 集成配置 uriworkermap.properties?

  • January 7, 2010

我非常接近完成我的第一個自定義安裝,我可以“品嚐”它……我正在關注 Apache Tomcat 安裝,並且兩台伺服器並排工作。我的 Apache 伺服器配置為公共 IP,並將 HTML 和 XML 頁面發送到 Internet。

我的 Tomcat 與 localhost:8080 一起工作,我可以執行範例 JSP、Servlet、Applet 等。

現在我正在互連,因此 Tomcat 可以為 Apache 請求提供 JSP 和後端數據庫服務。我找到了 Tomcat 連接器,我可以從日誌中驗證 URL 是否來自網際網路,因為它會記錄在 Apache 日誌中,然後發送到 Tomcat,因為我可以在其日誌中看到 URL 並解析出組件. 到目前為止,一切都很好……沒有發生的是回程——響應。

瀏覽器現在收到 503 Service Not Available 響應(巨大的進度/成功),我可以看到日誌中轉儲的 ascii/hex 響應。

我認為缺少的部分是將規則配置到伺服器配置中。這就是安裝文件變得非常模糊的地方。我已經搜尋了答案,但它都作為 IIS 答案回來了,這不適用於我的 Apache。

我認為規則是正確的,但我需要知道如何“將它們放入伺服器配置中”。我假設該文件位於儲存我的 workers.properties 的 conf/ 文件夾中,並且我猜測引用位於“server.xml”中——這兩點是否正確?它進入 server.xml 的哪個部分以及配置節點的格式如何?

如果我的問題需要更多細節,請回擊,我會提供更多。

  • 阿帕奇 2.2
  • Windows XP 5.1.26(古老但已安裝所有SP)
  • 雄貓 5.2.7
  • Java / JRE / JSDK 等都是 ~1.4.x、1.5.x 和 1.6.x(如果需要,我將不得不為此探勘更多)。
  • 連接器是 1.7(我認為)配置為 AJP1.3
  • 所有標準埠
  • 防火牆是帶有埠轉發的 Netgear
  • 使用者 ID / 密碼不是預設值
  • 其他的東西 ????

此外,如果有更多關於調試/跟踪此問題的提示 - 我想為我的客戶記錄下來。

嚴重錯誤地誤讀了問題的標題-漫長的一天。您正在尋找的命令指令是這樣的:

JkMountFile

您可以將此指令放在 httpd.conf 中(或單獨的 mod_jk.conf,具體取決於您的設置方式)

來自apache 的文件

包含從上下文到 Tomcat 工作者的多個映射的文件。它通常稱為 uriworkermap.properties。有關繼承規則,請參閱:JkMountCopy。沒有預設值。


如果有人感興趣,我會把它留在這裡。

所以,既然你有一個workers.properties,你可能正在使用mod_jk(它已被mod_proxy_ajp* 折舊)。workers.properties 實際上是 mod_jk 配置的一部分。

是的,mod_jk 的文件很簡單。因此,我將繼續向您展示我的生產配置作為範例 - 在我們執行 *nix 框時您可能需要稍微修改它,但概念是相同的。

  1. 你的 httpd.conf 應該有類似的東西:這告訴 apache 包含一個單獨的 mod_jk 配置文件(你實際上可以把這些指令放在 httpd.conf 但是……我喜歡模組化)。然後為您的 jsp 文件配置別名和掛載點。
Include <path_to_mod_jk.conf>
<VirtualHost *:80>
JkAutoAlias /usr/tomcat/webapps
JkMount /<your_webapp>/*.jsp <your_worker>
  1. 您的 mod_jk.conf 應如下所示:

這是您為 apache、日誌、worker 文件等設置所有通用 mod_jk 設置的地方。

   #MOD_JK Config File
   JkWorkersFile <path_to_your_workers.properties>
   JkLogFile /var/log/httpd/mod_jk.log
   JkLogLevel error
   JkShmFile /var/run/mod_jk.shm
  1. 最後你應該有一個workers.properties,類似於: 最後我們進入配置的核心。這是您設置工作人員的地方。這些選項很容易解釋。
   worker.<your_worker_name>.type=ajp13
   worker.list=<your_worker_name>
   #Worker Config
   worker.<your_worker_name>.host=127.0.0.1
   worker.<your_worker_name>.port=8009
  • 是的,我仍然在生產中執行它,儘管我們正在啟動一個現代化項目,可能會看到 mod_jk 的結束並遷移到 mod_proxy_ajp

引用自:https://serverfault.com/questions/100316