Конфигурация прокси-сервера Apache для методов запроса

Я хочу скрыть свой HTTP-веб-интерфейс за прокси-сервером Apache. Моя текущая конфигурация:

<VirtualHost *:8180>
SSLEngine on
SSLCertificateFile /tools/Apache24/conf/ssl/---.crt
SSLCertificateKeyFile /tools/Apache24/conf/ssl/---.key

ServerName some.server.some.where
DocumentRoot "/applications/------/dist"
DirectoryIndex index.html

RewriteEngine On
RewriteRule /api/(.*)           http://localhost:8182/$1 [P,L]

ProxyPass /api/ http://localhost:8182/  
ProxyPassReverse /api/ http://localhost:8182/   

<Directory /applications/------/dist>
    Require all granted
</Directory>
</VirtualHost>

С этим я могу получить доступ к своему api через / api, но он работает только для запросов GET? Что мне нужно сделать, чтобы также разрешить POST, PUT и DELETE? BR, Daniel

0
задан 7 February 2018 в 18:03
1 ответ

Для начала у вас есть две директивы, которые более или менее должны делать то же самое, используйте либо

RewriteEngine On
RewriteRule /api/(.*)           http://localhost:8182/$1 [P,L]

, либо

ProxyPass /api/ http://localhost:8182/  
ProxyPassReverse /api/ http://localhost:8182/

, но не обе одновременно. (Мое личное предпочтение - строфа ProxyPass).

Если не настроено иное, все методы должны быть изменены, а когда GET работает, POST и другие должны также работать. (Если, конечно, вы не запретите их где-либо еще.)

Но существует целый ряд сценариев, в которых используется URL-путь / api / на обратном прокси-сервере, но фактический API устанавливается в корень / из http: // localhost: 8182 / может дать сбой интересным образом.

0
ответ дан 5 December 2019 в 06:37

Теги

Похожие вопросы