iT邦幫忙

0

關於一個古老系統設定問題請教 Apache + Tomcat + Coyote JK

  • 分享至 

  • xImage

大家好,又有疑難雜症要來求救了,服務的地方有一個古老的系統,因為僅供查詢,所以完全沒有維護及升級的打算,就只是讓系統活著能用就好,然而從某天開始,原本使用 https 的連線無法使用了,在經過兩天的研究及亂試,仍無法解決問題,所以只好再來求救了。

OS:CentOS 4
Apache:2.0.82
Tomcat:4 (只知道 4 版,不知如何去看更詳細的版本)

Apache 當頭接 SSL 然後利用 JK 走 Channel 8009 丟給 Tomcat ,但是問題就出在這個 Channel 上,從 httpd 的 error_log 會看到

[error] ajp13.init(): No channel 6
[error] workerEnv.initWorkers() init failed for ajp13:6
[error] uriEnv.init() map to invalid worker /jkstatus/ ajp13:localhost:8009
[error] uriEnv.init() map to invalid worker /.jsp ajp13:localhost:8009
[error] ajp13.init(): No channel 6
[error] workerEnv.initWorkers() init failed for ajp13:6
[error] uriEnv.init() map to invalid worker /jkstatus/ ajp13:localhost:8009
[error] uriEnv.init() map to invalid worker /.jsp ajp13:localhost:8009
[error] ajp13.init(): No channel 6
[error] workerEnv.initWorkers() init failed for ajp13:6
[error] uriEnv.init() map to invalid worker /jkstatus/ ajp13:localhost:8009
[error] uriEnv.init() map to invalid worker /.jsp ajp13:localhost:8009
[error] ajp13.init(): No channel 6
[error] workerEnv.initWorkers() init failed for ajp13:6
[error] uriEnv.init() map to invalid worker /jkstatus/ ajp13:localhost:8009
[error] uriEnv.init() map to invalid worker /.jsp ajp13:localhost:8009
[error] ajp13.init(): No channel 6
[error] workerEnv.initWorkers() init failed for ajp13:6
[error] uriEnv.init() map to invalid worker /jkstatus/ ajp13:localhost:8009
[error] uriEnv.init() map to invalid worker /.jsp ajp13:localhost:8009
[error] ajp13.init(): No channel 6
[error] workerEnv.initWorkers() init failed for ajp13:6
[error] ajp13.init(): No channel 6
[error] workerEnv.initWorkers() init failed for ajp13:6
[error] uriEnv.init() map to invalid worker /jkstatus/ ajp13:localhost:8009
[error] uriEnv.init() map to invalid worker /jkstatus/ ajp13:localhost:8009
[error] uriEnv.init() map to invalid worker /.jsp ajp13:localhost:8009
[error] ajp13.init(): No channel 6
[error] workerEnv.initWorkers() init failed for ajp13:6
[error] uriEnv.init() map to invalid worker /jkstatus/ ajp13:localhost:8009
[error] uriEnv.init() map to invalid worker /.jsp ajp13:localhost:8009
[notice] Apache/2.0.52 (CentOS) configured -- resuming normal operations
[error] uriEnv.init() map to invalid worker /.jsp ajp13:localhost:8009
[error] modjk.handle() No worker for /film/home.jsp

一直出現「No channel 6」,但是相關的設定檔的時間是停留在 2012 年,代表這中間並沒有人去修改設定檔,也檢查了相關的 port ,使用 telnet 去連 8009 是有回應的,但是就不知道 ajp13.init 會連不到?

這有可能會是什麼問題?該如何去檢查?

除了在檢查這個問題,還試著去改設定讓 Tomcat 自己去接 443 ,但是根據多份資料去產生憑證及設定,在用瀏覽器去連線時都會出現找不到 rootCA 的訊息 (不好意思,設定還原了,晚點再補) ,然後雖然能連上但似乎沒有吃到憑證,不知道是什麼問題。

謝謝!

資深菜鳥工程師 敬上

canchang iT邦新手 3 級 ‧ 2022-03-10 17:20:38 檢舉
自問自答:
在經過三天的網路查找資料,放棄先入為主的「原本設定是可以用的」想法,在錯誤嚐試多次後,終於好像可以動了,修改設定檔如下:

[channel.socket:localhost:8009]
info=Ajp13 forwarding over socket
debug=9
tomcatId=localhost:8009
keepalive=1
host=127.0.0.1
port=8009

[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
debug=0

兩個 [] 裡面都加上了「:localhost:8009」後重啟 Apache 服務,好像就可以了。

趕緊做個快照。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答