Apache 2.4.29和MOD_JK 1.2.42未转发到tomcat



我正在使用mod_jk 1.2.42对tomcat 8.5.11进行安装的Apache 2.4.29。
我的问题是apache mod_jk没有将请求转发到tomcat。
我们对MOD_JK(1.2.25)进行了以前的Apache安装(2.2.31),并且对同一tomcat及其正常工作。

这是我们在mod_jk.log文件上获得的唯一错误/某物:

[Fri Dec 08 08:02:26.659 2017] [32025:140457247692544] [debug] jk_child_init::mod_jk.c (3478): Initialized mod_jk/1.2.42
[Fri Dec 08 08:02:41.987 2017] [31596:140455607994112] [debug] jk_translate::mod_jk.c (3859): missing uri map for mycompany.com:/SCDO
[Fri Dec 08 08:02:41.987 2017] [31596:140455607994112] [debug] jk_map_to_storage::mod_jk.c (4027): missing uri map for mycompany.com:/SCDO
[Fri Dec 08 08:02:42.007 2017] [31596:140455607994112] [debug] jk_translate::mod_jk.c (3859): missing uri map for mycompany.com:/error.html
[Fri Dec 08 08:02:42.007 2017] [31596:140455607994112] [debug] jk_map_to_storage::mod_jk.c (4027): missing uri map for mycompany.com:/error.html
[Fri Dec 08 08:19:53.665 2017] [31598:140457247692544] [debug] wc_shutdown::jk_worker.c (390): Shutting down worker ajp13

在访问日志上,我们只会遇到404错误。

这是httpd.conf的包含:

Include conf/mod_jk.conf

这是mod_jk配置:

<IfModule !mod_jk.c>
  LoadModule jk_module "/opt/apache-2.4.29/modules/mod_jk.so"
</IfModule>
JkWorkersFile "/opt/apache-2.4.29/conf/workers.properties"
#enable this log only for troubleshooting
JkLogFile "/opt/apache-2.4.29/logs/mod_jk.log"
JkLogLevel debug
    JkMount /servlets-examples ajp13
    JkMount /servlets-examples/* ajp13
    JkMount /jsp-examples ajp13
    JkMount /jsp-examples/* ajp13
    JkMount /probe ajp13
    JkMount /probe/* ajp13
   JkMount /SCDO  ajp13
   JkMount /SCDO/* ajp13
   JkMount /test  ajp13
   JkMount /test/* ajp13
   JkMount /mod_jk_status mystatus

这是工人。

worker.list=ajp13
worker.ajp13.port=8010
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.socket_timeout=300
worker.ajp13.max_packet_size=20000

worker.list=mystatus
worker.mystatus.type=status

任何想法都将不胜感激。

我遇到了同样的问题,这使我发疯。它始于我加载Letsencrypt ...这是对我有用的修复:在每个VirtualHost部分中添加一个" JKMountCopy"。

例如:

在/etc/httpd/conf.d/文件夹中,编辑具有VirtualHost定义的任何.conf文件(grep virtualHost *.conf) - 可能有多个:

<VirtualHost _default_:443>
#Add the following line
JkMountCopy On 
....

这只是一个例子,它可能不会说默认值:443-另一个是端口80,您可能会猜到。如果您的主httpd.conf中有一个虚拟霍斯特部分,则可能也需要它。我没有一个。

让我在apache =&gt中添加一个可能的问题的原因。通过AJP。

就我而言,我已经在计算机上安装了libapache2-mod-jk库,该库会创建一个单独的工人文件。我检查了主机上的当前文件:

find / -name "workers.properties"

并得到:

/etc/apache2/workers.properties
/etc/libapache2-mod-jk/workers.properties

一直以前:

  • 我正在研究错误的文件(内部libapache2-mod-jk),因为我没有指向apache。
  • apache正在使用默认文件(apache2内部)和配置中的错误的工作者标识符,因为我从错误的文件中拿走了它。

以防万一您面临类似的问题,并且确定您已经尝试了所有事情 - 检查此问题。

,对不起上一个答案。
您必须检查tomcat的server.xml文件中AJP 1.3连接器的超时和maxpostSize*值。

*从tomcat 7和上级中,最大值的值必须小于0才能禁用它。

问候。