Încerc să redirecționez cererea PUT pentru un anumit punct final către o altă gazdă.
Punctul final menționat se află sub /intern
și acceptă numai cereri PUT.
Celelalte puncte finale sub /intern
va continua să fie deservit de gazda/serverul meu principal.
Am încercat să-l configurez folosind atât regulile de rescriere, cât și proxy-ul ([P]
) steag și folosind ProxyPass
directivă - toate rezultând într-o eroare internă de server 500 și cererea nu ajunge niciodată la noua gazdă
Aplicația mea client folosește un client REST simplu care nu poate gestiona redirecționările, așa că trebuie să folosesc un fel de proxy.
Jurnalele Apache arată următoarele
[Joi, 10 februarie 08:56:20.394444 2022] [rewrite:trace1] [pid 8579] mod_rewrite.c(480): [client XXX.XXX.XXX.XXX:XXXXXX] XXX.XXX.XXX.XXX - - [subdomeniu1 .mydomain.com/sid#55d4ed07ecb0][rid#55d4ed2c5f20/initial] continuă cu proxy-ul de solicitare proxy: https://subdomain2.mydomain.com/internal/my-endpoint [OK]
Iată configurația curentă pentru vhost specific
<VirtualHost *:80>
ServerName subdomain1.mydomain.com
ProxyPass /soap ajp://localhost:7007/soap retry=3
ProxyPreserveHost On
Redirect / https://subdomain1.mydomain.com/
ErrorLog /var/log/httpd/subdomain1_error
</VirtualHost>
<VirtualHost *:443>
ServerName subdomain1.mydomain.com
Options FollowSymlinks
ProxyRequests On
ProxyPreserveHost On
#RewriteEngine On
#RewriteCond %{REQUEST_URI} '^/internal/my-endpoint'
#RewriteCond %{REQUEST_METHOD} ^(PUT)
#RewriteRule "^/(.*)" "https://subdomain2.mydomain.com/internal/my-endpoint" [P]
ProxyPass /internal/my-endpoint https://subdomain2.mydomain.com/internal/my-endpoint
ProxyPassReverse /internal/my-endpoint https://subdomain2.mydomain.com/internal/my-endpoint
ProxyPreserveHost On
LogLevel alert rewrite:trace3
CustomLog /var/log/httpd/subdomain1_access_log common
ProxyPass / ajp://localhost:7007/ retry=3
ProxyPassReverse / ajp://localhost:7007/ retry=3
ProxyPreserveHost Off
ErrorLog /var/log/httpd/subdomain1
SSLEngine on
</VirtualHost>