如何使用proxy_ajp从apache2转发HTTP方法到tomcat

问题描述 投票:0回答:1

我已经使用apache2配置了Web服务器,然后使用如下所示的ajp协议代理了tomcat的代理请求:

<host *:443>

        ProxyRequests On
        ProxyPreserveHost On
        <Proxy *>
          Order allow,deny
          Allow from all
          AllowMethods GET PUT DELETE POST OPTIONS
        </Proxy>
        ProxyPass / ajp://some_vhost:8009/
        ProxyPassReverse / ajp://some_vhost:8009/

从apache2服务器收到的所有请求都转发到tomcat的GET HTTP方法,因此,如果您正在侦听某种post方法的后置操作,则此行为会导致不支持的方法。

所以,我想知道如何通过AJP连接器将原始HTTP请求方法转发到tomcat容器

实际情况:客户端-> POST请求Apache2-> GET方法来实现tomcat的安装。我想要的客户端-> POST请求Apache2-> Apache Tomcat的POST方法。

提前感谢!

更新。

我在侦听端口80的虚拟主机上有重写条件,该条件重写为https

RewriteEngine on
        RewriteCond %{SERVER_NAME} =www.mydomain.com [OR]
        RewriteCond %{SERVER_NAME} =mydomain.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

我如何也可以重写Http方法??我认为这是问题所在,因为当我使用https启动请求时:有效

apache2 tomcat8 ajp mod-proxy-ajp
1个回答
0
投票

您的分析不正确。 httpd始终通过AJP协议将原始HTTP方法转发给Tomcat。

问题是HTTPS重定向。原始POST重定向后,客户端将以GET响应。您要发出307重定向,而不是301。

注意:我的经验(可能是过时的)是客户不一定总是正确响应307。

© www.soinside.com 2019 - 2024. All rights reserved.