apache/tomcat:apache无法使用mod_jk访问后端的tomcat

dzhpxtsq  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(461)

尝试将tomcat8.5配置为后端,将apache2.4配置为接收请求,以便通过linux/centos上的ajp端口将其重定向到tomcat。Tomcat可以通过端口直接访问。8181828383和apache也可以正常工作。但是,我无法使用配置的localhost/app1../app2../app3访问Tomcat。我收到“服务不可用错误503”。我不理解mod_jk.log中的错误消息(例如连接到tomcat失败),因为我认为,所有这些都已正确配置。
错在哪里?
tomcat1的server.xml(tomcat2/3端口偏移量+100)

  1. <Connector port="8181" protocol="HTTP/1.1"
  2. connectionTimeout="20000"
  3. redirectPort="8443"
  4. maxThreads="500"
  5. secret="F45A93BF-3AA7-4CB4-E49A-DB34573E4A25"
  6. allowedRequestAttributesPattern=".*"/>
  7. <Connector protocol="AJP/1.3"
  8. address="localhost"
  9. port="8109"
  10. redirectPort="8443" />

httpd.conf

  1. LoadModule jk_module modules/mod_jk.so
  2. JkWorkersFile conf/workers.properties
  3. JkLogFile logs/mod_jk.log
  4. JkLogLevel debug
  5. JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
  6. JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
  7. JkRequestLogFormat "%w %V %T"
  8. JkMount /app1* tomcat1
  9. JkMount /app2* tomcat2
  10. JkMount /app3* tomcat3

工人财产:

  1. worker.list=tomcat1,tomcat2,tomcat3
  2. worker.tomcat1.type=ajp13
  3. worker.tomcat1.host=localhost
  4. worker.tomcat1.port=8109
  5. worker.tomcat1.secret=F45A93BF-3AA7-4CB4-E49A-DB34573E4A25
  6. worker.tomcat2.type=ajp13
  7. worker.tomcat2.host=localhost
  8. worker.tomcat2.port=8209
  9. worker.tomcat2.secret=4F5A93BF-3AA7-4CB4-E49A-DB34573E4A52
  10. worker.tomcat3.type=ajp13
  11. worker.tomcat3.host=localhost
  12. worker.tomcat3.port=8309
  13. worker.tomcat3.secret=45FA93BF-3AA7-4CB4-E49A-DB34573EA452

mod_jk.log

  1. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] jk_servlet_normalize::jk_util.c (2184): URI on entering jk_servlet_normalize: [/app1]
  2. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] jk_servlet_normalize::jk_util.c (2278): URI on exiting jk_servlet_normalize: [/app1]
  3. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] map_uri_to_worker_ext::jk_uri_worker_map.c (1167): Attempting to map URI '/app1' from 3 maps
  4. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] find_match::jk_uri_worker_map.c (977): Attempting to map context URI '/app1*=tomcat1' source 'JkMount'
  5. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] find_match::jk_uri_worker_map.c (990): Found a wildchar match '/app1*=tomcat1'
  6. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] jk_handler::mod_jk.c (2821): Into handler jakarta-servlet worker=tomcat1 r->proxyreq=0
  7. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] wc_get_worker_for_name::jk_worker.c (119): found a worker tomcat1
  8. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] wc_maintain::jk_worker.c (352): Maintaining worker tomcat1
  9. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] wc_maintain::jk_worker.c (352): Maintaining worker tomcat2
  10. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] wc_maintain::jk_worker.c (352): Maintaining worker tomcat3
  11. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] wc_get_name_for_type::jk_worker.c (303): Found worker type 'ajp13'
  12. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] init_ws_service::mod_jk.c (1178): Service protocol=HTTP/1.1 method=GET ssl=false host=(null) addr=127.0.0.1 name=localhost port=80 auth=(null) user=(null) laddr=127.0.0.1 raddr=127.0.0.1 uaddr=127.0.0.1 uri=/app1
  13. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] ajp_get_endpoint::jk_ajp_common.c (3356): (tomcat1) acquired connection pool slot=0 after 0 retries
  14. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] ajp_marshal_into_msgb::jk_ajp_common.c (680): (tomcat1) ajp marshaling done
  15. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] ajp_service::jk_ajp_common.c (2587): processing tomcat1 with 2 retries
  16. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] ajp_send_request::jk_ajp_common.c (1718): (tomcat1) no usable connection found, will create a new one.
  17. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] jk_open_socket::jk_connect.c (673): socket TCP_NODELAY set to On
  18. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] jk_open_socket::jk_connect.c (797): trying to connect socket 18 to ::1:8109
  19. [Tue May 18 08:39:27 2021] [67918:139621179135744] [info] jk_open_socket::jk_connect.c (815): connect to ::1:8109 failed (errno=111)
  20. [Tue May 18 08:39:27 2021] [67918:139621179135744] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1064): (tomcat1) Failed opening socket to (::1:8109) (errno=111)
  21. [Tue May 18 08:39:27 2021] [67918:139621179135744] [error] ajp_send_request::jk_ajp_common.c (1724): (tomcat1) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=111)
  22. [Tue May 18 08:39:27 2021] [67918:139621179135744] [info] ajp_service::jk_ajp_common.c (2774): (tomcat1) sending request to tomcat failed (recoverable), because of error during request sending (attempt=1)
  23. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] ajp_service::jk_ajp_common.c (2623): (tomcat1) retry 1, sleeping for 100 ms before retrying
  24. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] ajp_send_request::jk_ajp_common.c (1718): (tomcat1) no usable connection found, will create a new one.
  25. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] jk_open_socket::jk_connect.c (673): socket TCP_NODELAY set to On
  26. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] jk_open_socket::jk_connect.c (797): trying to connect socket 18 to ::1:8109
  27. [Tue May 18 08:39:27 2021] [67918:139621179135744] [info] jk_open_socket::jk_connect.c (815): connect to ::1:8109 failed (errno=111)
  28. [Tue May 18 08:39:27 2021] [67918:139621179135744] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1064): (tomcat1) Failed opening socket to (::1:8109) (errno=111)
  29. [Tue May 18 08:39:27 2021] [67918:139621179135744] [error] ajp_send_request::jk_ajp_common.c (1724): (tomcat1) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=111)
  30. [Tue May 18 08:39:27 2021] [67918:139621179135744] [info] ajp_service::jk_ajp_common.c (2774): (tomcat1) sending request to tomcat failed (recoverable), because of error during request sending (attempt=2)
  31. [Tue May 18 08:39:27 2021] [67918:139621179135744] [error] ajp_service::jk_ajp_common.c (2795): (tomcat1) connecting to tomcat failed (rc=-3, errors=1, client_errors=0).
  32. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] ajp_reset_endpoint::jk_ajp_common.c (847): (tomcat1) resetting endpoint with socket -1 (socket shutdown)
  33. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] ajp_abort_endpoint::jk_ajp_common.c (817): (tomcat1) aborting endpoint with socket -1
  34. [Tue May 18 08:39:27 2021] [67918:139621179135744] [debug] ajp_done::jk_ajp_common.c (3287): recycling connection pool for worker tomcat1 and socket -1
  35. [Tue May 18 08:39:27 2021] [67918:139621179135744] [info] jk_handler::mod_jk.c (2991): Service error=-3 for worker=tomcat1
  36. [Tue May 18 08:39:27 2021] tomcat1 localhost 0.102405
  37. [Tue May 18 08:39:27 2021] [68200:139621321500544] [debug] do_shm_open::jk_shm.c (678): Attached shared memory /usr/local/apache/logs/jk-runtime-status.67915 [5] size=1536 workers=2 free=0 addr=0x7efc1f470000
  38. [Tue May 18 08:39:27 2021] [68200:139621321500544] [debug] do_shm_open_lock::jk_shm.c (472): Duplicated shared memory lock /usr/local/apache/logs/jk-runtime-status.67915.lock
  39. [Tue May 18 08:39:27 2021] [68200:139621321500544] [debug] jk_child_init::mod_jk.c (3474): Initialized mod_jk/1.2.48
  40. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] jk_servlet_normalize::jk_util.c (2184): URI on entering jk_servlet_normalize: [/favicon.ico]
  41. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] jk_servlet_normalize::jk_util.c (2278): URI on exiting jk_servlet_normalize: [/favicon.ico]
  42. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] map_uri_to_worker_ext::jk_uri_worker_map.c (1167): Attempting to map URI '/favicon.ico' from 3 maps
  43. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] find_match::jk_uri_worker_map.c (977): Attempting to map context URI '/app1*=tomcat1' source 'JkMount'
  44. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] find_match::jk_uri_worker_map.c (977): Attempting to map context URI '/app2*=tomcat2' source 'JkMount'
  45. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] find_match::jk_uri_worker_map.c (977): Attempting to map context URI '/app3*=tomcat3' source 'JkMount'
  46. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] jk_translate::mod_jk.c (3970): no match for /favicon.ico found
  47. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] jk_servlet_normalize::jk_util.c (2184): URI on entering jk_servlet_normalize: [/favicon.ico]
  48. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] jk_servlet_normalize::jk_util.c (2278): URI on exiting jk_servlet_normalize: [/favicon.ico]
  49. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] map_uri_to_worker_ext::jk_uri_worker_map.c (1167): Attempting to map URI '/favicon.ico' from 3 maps
  50. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] find_match::jk_uri_worker_map.c (977): Attempting to map context URI '/app1*=tomcat1' source 'JkMount'
  51. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] find_match::jk_uri_worker_map.c (977): Attempting to map context URI '/app2*=tomcat2' source 'JkMount'
  52. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] find_match::jk_uri_worker_map.c (977): Attempting to map context URI '/app3*=tomcat3' source 'JkMount'
  53. [Tue May 18 08:39:29 2021] [68200:139621179135744] [debug] jk_map_to_storage::mod_jk.c (4074): no match for /favicon.ico found
v440hwme

v440hwme1#

问题是现在 localhost 决心两者兼而有之 127.0.0.1::1 . tomcat连接器只能绑定到一个地址。因此,您可以:
配置两个ajp连接器并使用 localhost :

  1. <Executor name="localhost-ajp" namePrefix="ajp-nio-localhost-8109-exec-"/>
  2. <Connector protocol="AJP/1.3"
  3. address="127.0.0.1"
  4. port="8109"
  5. executor="localhost-ajp" />
  6. <Connector protocol="AJP/1.3"
  7. address="::1"
  8. port="8109"
  9. executor="localhost-ajp" />

用一个像这样的名字 ip6-localhost 它解析为单个ip。

相关问题