Apache 2.4, Reverse Proxy zu 4D und File Upload

Wir betreiben den 4D Webserver hinter einem Apache Webserver, der als Reverse Proxy arbeitet und alle Requests an 4D weiterleitet. Ankommende Requests sind https-Requests und diese werden als http-Requests (ohne SSL) an 4D weitergeleitet. So weit, so gut.

Nun haben wir den Apache von 2.2. auf Apache 2.4 aktualisiert und sind mit folgendem Problem konfrontiert: File-Uploads via http-POST und Content-Type: multipart/form-data werden ab einer bestimmten File-Größe durch den Apache umgeschrieben. Das sieht dann so aus, dass die Header-Zeile
Content-Disposition: form-data; … usw
nicht mehr im (Multipart/Mime-) Body erscheint, sondern im Header, der Body enthält nur noch die binären Daten.

Ist das jemandem bekannt? Kann das etwas mit 4D zu tun haben, dass sich der Apache verschluckt?

Wir wollen gern den Apache auf Version 2.4 aktualisieren, weil er eine aktuelle OpenSSL-Version enthält.

Das ganze ist auf:

OS : Windows

Viele Grüße
Lutz Epperlein

Schön, wenn man sich die Fragen selbst beantworten kann. Leider ist
die Antwort nicht so richtig schön.

Wir konnten das Problem insoweit fixen, indem wir die Konfiguration
des Reverse Proxy verändert haben.
Alt:

ProxyRequests Off

ProxyPass http://localhost:8086/
ProxyPassReverse http://localhost:8086/

Neu, funktionierend auch mit Apache 2.4:

<IfModule mod_proxy.c>
  ProxyRequests Off
  <Location />
     ProxyPass http://localhost:8086/
     ProxyPassReverse http://localhost:8086/
     SetEnv force-proxy-request-1.0 1
     SetEnv proxy-nokeepalive 1
  </Location>
</IfModule>

Gefunden in der
http://httpd.apache.org/docs/current/mod/mod_proxy.html#envsettingsDo
u zum Apache>:

Protocol Adjustments
For circumstances where mod_proxy is sending requests to an origin
server that doesn’t properly implement keepalives or HTTP/1.1, there
are two environment variables that can force the request to use
HTTP/1.0 with no keepalive. These are set via the SetEnv directive.

These are the force-proxy-request-1.0 and proxy-nokeepalive notes.

<Location “/buggyappserver/”>
ProxyPass “http://buggyappserver:7001/foo/
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1