Tomcat的Apache代理AJP给出404

问题描述

我想使用Apache代理来访问由Tomcat 9交付的基于Java的API(servlet)。但是我只能使用404

Tomcat正在运行,我在http://myappname.localhost:8080/api/test下得到了想要的东西。

但是404的{​​{1}}

进一步的 Tomcat 9.0.39配置

server.xml:
http://myappname.localhost/myappname-app/api/test/

我在Eclipse中使用以下日志启动它:

 <Connector address="0.0.0.0" port="8009" protocol="AJP/1.3" redirectPort="8443" secret="null"/>
# ...
<Engine defaultHost="localhost" name="Catalina">
从Eclipse服务器配置

enter image description here

enter image description here

Apache正在运行,我在Nov 10,2020 12:37:38 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["ajp-nio-0.0.0.0-8009"] Nov 10,2020 12:37:42 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-nio-0.0.0.0-8009"] 下得到了静态前端文件

更多 Apache 2.4.41配置

api.conf
http://myappname.localhost/myappname-app/

在这里两个问题

  1. 我需要像<VirtualHost myappname.localhost:80> ServerName myappname.localhost #ProxyRequests Off #ProxyPass /myappname-app/api ajp://127.0.0.1:8009/api/ #ProxyPassReverse /myappname-app/api ajp://127.0.0.1:8009/api/ LogLevel debug # Settings for adding a trailing slash to the URL RewriteEngine On RewriteCond %{REQUEST_URI} ^/(portal)$ RewriteRule ^(.*)$ http://%{HTTP_HOST}$1/ [R=301,L] # Settings for Apache Reverse Proxying <IfModule mod_proxy.c> # Proxy specific settings ProxyRequests Off ProxyPreserveHost On <Proxy *> AddDefaultCharset off Order deny,allow Allow from all </Proxy> ProxyPass /myappname-app/api ajp://127.0.0.1:8009/api/ ProxyPassReverse /myappname-app/api ajp://127.0.0.1:8009/api/ </IfModule> </VirtualHost> 这样的东西吗?或者这不适合我的目的(它将路径用作绝对路径吗?)?
  2. JkMount /myappname-app/api ajp13指令中使用ServerName myappname.localhost 127.0.0.1 有什么问题吗?
摘自/etc/libapache2-mod-jk/workers.properties:
ProxyPass
apachectl -M包含
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
#  ----> lbfactor must be > 0
#  ----> Low lbfactor means less work done by the worker.
worker.ajp13_worker.lbfactor=1

我不确定whether I am using mod_jkor mod_proxy_ajp,但我想它是 libapache2-mod-jk 中的那个。

我试图

jk_module (shared)

在虚拟主机的配置文件中,而提示

Include /etc/apache2/mods-available/proxy_ajp.load

但这没有任何改变。

/var/log/apache2/mod_jk.log只是说
LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so

但是我不知道这是否适合

Tue Nov 10 13:42:02.219 2020] [16136:139701289012288] [info] init_jk::mod_jk.c (3591): mod_jk/1.2.46 initialized

任何人(其他)都知道我在这里做错了吗?

这些答案并没有太大帮助:firstsecondthird (a really useful one)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)