我已经使用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启动请求时:有效
您的分析不正确。 httpd始终通过AJP协议将原始HTTP方法转发给Tomcat。
问题是HTTPS重定向。原始POST重定向后,客户端将以GET响应。您要发出307重定向,而不是301。
注意:我的经验(可能是过时的)是客户不一定总是正确响应307。