Рейтинг:0

Прокси-сервер Apache для серверных служб

флаг az

Мне нужно создать файл конфигурации для веб-сервера apache (Linux), который будет действовать как прокси для нескольких серверных служб на одном сервере. Каждая серверная служба работает как служба systemd на отдельных портах.

Файл conf содержит следующее

<VirtualHost: *:80>
    ProxyPass /api/policies/???  http://127.0.0.1:6001/
    ProxyPassReverse /api/policies/???  http://127.0.0.1:6001/

    ProxyPass /api/policies/???/coverages http://127.0.0.1:6002/
    ProxyPassReverse /api/policies/???/coverages http://127.0.0.1:6002/

    ProxyPass /api/policies/???/premiums http://127.0.0.1:6003/
    ProxyPassReverse /api/policies/???/coverages http://127.0.0.1:6003/

</VirtualHost>

??? относится к параметру запроса, который будет частью URL Как это определить в конфиге? какое выражение нужно использовать

Рейтинг:2
флаг us
Rob

Возможны несколько подходов.

  1. Включите директивы ProxyPass в правильном порядке. LocationMatch директивы; что-то вроде

    <LocationMatch "/api/policies/(.*)/coverages">
        ProxyPass  http://127.0.0.1:6002/
        # ...
    </LocationMatch>
    <LocationMatch "/api/policies/(.*)/premiums">
        ProxyPass  http://127.0.0.1:6003/
        # ...
    </LocationMatch>
    <Location "/api/policies/">
        ProxyPass  http://127.0.0.1:6001/
        # ...
    </Location>
    
  2. Используйте mod_rewrite обратный прокси цель [П]а не директивы ProxyPass, чтобы разрешить сопоставление с образцом.

     RewriteRule "^/api/policies/(.*)/coverages/(.*)" "http://127.0.0.1:6002/" [P]
     RewriteRule "^/api/policies/(.*)/premiums/(.*)" "http://127.0.0.1:6003/" [P]
    

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.