Linux

mod_jk 狀態頁面不工作

  • December 18, 2013

我正在使用 Apache 伺服器在 Tomcat 7 中進行集群。它也工作正常。但是我有以下問題:

  1. 我正在嘗試監控 mod_jk 狀態頁面;但它給出了 404 錯誤。

2)在日誌中顯示以下錯誤 -

[Tue Dec 17 13:16:51.019 2013] [2236:140599476504544] [error] init_jk::mod_jk.c (3348): Initializing shm:/etc/httpd/logs/mod_jk.shm.2236 errno=13. Load balancing workers will not function properly.
[Tue Dec 17 13:16:51.019 2013] [2236:140599476504544] [info] init_jk::mod_jk.c (3365): mod_jk/1.2.37 initialized
[Tue Dec 17 13:16:51.041 2013] [2237:140599476504544] [error] init_jk::mod_jk.c (3348): Initializing shm:/etc/httpd/logs/mod_jk.shm.2237 errno=13. Load balancing workers will not function properly.
[Tue Dec 17 13:16:51.042 2013] [2237:140599476504544] [info] init_jk::mod_jk.c (3365): mod_jk/1.2.37 initialized

這是worker.properties文件

worker.list=tomcatnode1,tomcatnode2,loadbalancer,statusmanager

worker.tomcatnode1.port=8009
worker.tomcatnode1.host=localhost
worker.tomcatnode1.type=ajp13
worker.tomcatnode1.lbfactor=100

worker.tomcatnode2.port=8010
worker.tomcatnode2.host=localhost
worker.tomcatnode2.type=ajp13
worker.tomcatnode2.lbfactor=100


#Load Balance Configuration
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=tomcatnode1, tomcatnode2
worker.loadbalancer.sticky_session=1

#worker.list=jkstatus
worker.statusmanager.type=status

這是 mod_jk.conf 文件

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkShmFile logs/mod_jk.shm
JkMount /IntellixWebApi/* loadbalancer
#JkMount /jkmanager/* jkstatus
#JkMount /jkmanager jkstatus

<Location /status/>
   JkMount statusmanager
   Order deny,allow
#   Deny from all
   Allow from 127.0.0.1
</Location>

如果我正在訪問 IntellixWebApi;它是可訪問的。但是當我使用 /status 時;它不工作。

請建議。

經過大量的Google搜尋;我能夠獲得 jk_manager 狀態螢幕。首先我禁用了 SELINUX,然後重新啟動系統;我設置了以下 JkMount

JkMount /* loadbalancer
JkMount /IntellixWebApi/* loadbalancer
JkMount /jkmanager/* jkstatus

<Location /status/>
   JkMount statusmanager
   Order deny,allow
   Deny from all
   Allow from 127.0.0.1
</Location>

這對我有用。

謝謝

初始化工作人員所需的共享記憶體時出現問題。

檢查目錄是否/etc/httpd/logs/存在並且是否可由執行 tomcat 實例的使用者寫入。如果不是,請更改目錄的權限,或者創建一個單獨的目錄來保存 shm 文件。(我推薦後者,因為將重要狀態保存在同一個地方並不是一個好主意你的日誌,有幾個原因。)

如果該目錄確實存在並且是可寫的,請檢查您是否打開了 SELinux,如果是,是否存在任何權限問題。您總是可以嘗試將其設置為允許以查看問題是否消失;如果是這樣,是時候修復權限並重新打開它了。

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