ProxyPass | ProxyPassMatch не может иметь путь при определении в местоположении

#apache #configuration #proxypass

#apache #конфигурация #proxypass

Вопрос:

Я попробовал ответить на эту проблему. Как объединить несколько директив ProxyPass в Apache?Но я получаю сообщение об ошибке, когда запускаю apache, говоря ProxyPass|ProxyPassMatch can not have a path when defined in a location.

Мой 000-default.conf содержит приведенный ниже код

 <VirtualHost *:80>
include location1.conf
include location2.conf
</VirtualHost>
  

и мое location1 имеет,

 <Location /web/?_escaped_fragment_=/>
ProxyPass        /phpmyadmin !
ProxyPass / http://localhost:8082/
ProxyPassReverse / http://localhost:8082/
</Location>
  

и мой location2 имеет,

 <Location /web/#!/>
ProxyPass        /phpmyadmin !
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</Location>
  

Ответ №1:

Аналогично, как видно из упомянутого вами вопроса, необходимо отбросить первый аргумент ProxyPass ProxyPassReverse предложений and при вложении в предложение under <Location> .

Поэтому рассмотрите возможность изменения вашей конфигурации следующим образом:

location1:

 <Location /web/?_escaped_fragment_=/>
    ProxyPass /phpmyadmin !
    ProxyPass http://localhost:8082/          # <== Dropped '/'
    ProxyPassReverse http://localhost:8082/   # <== Dropped '/'
</Location>
  

location2:

 <Location /web/#!/>
    ProxyPass /phpmyadmin !
    ProxyPass http://localhost:8080/          # <== Dropped '/'
    ProxyPassReverse http://localhost:8080/   # <== Dropped '/'
</Location>
  

Это должно работать нормально.

Комментарии:

1. К сожалению, это не так. Он по-прежнему жалуется на то же самое `ProxyPass / phpmyadmin!`

2. @oussaka Приятно это слышать 🙂