У меня есть сервер, работающий на localhost: 3030, и я могу получить доступ к нескольким веб-страницам. Когда я выполняю wget на localhost: 3030 / index.html
, я получаю веб-страницу. Используя ProxyPassMatch, я пытался перенаправить запрос с example.com/sparql/
на locahost: 3030 /
, но он не работает. Я использую debian, и его конфигурация следующая:
<VirtualHost *:80>
ServerName example.com
ProxyPass "/sparql" "http://localhost:3030/"
ProxyPassReverse "/sparql" "http://localhost:3030/"
ProxyPassReverseCookieDomain "localhost" "example.com"
....
<VirtualHost *:80>
Когда я отправляю запрос на example.com/sparql/index.html
, страница возвращается, но ни одно из изображений и файлов css не отправляется вернулся. Есть ли проблема с конфигурацией?
Зачем использовать ProxyPassMatch
для такого простого обратного прокси? Вы можете просто...
<VirtualHost *:80>
ServerName example.com
...
ProxyPass "/sparql/" "http://localhost:3030/sparql/"
ProxyPassReverse "/sparql/" "http://localhost:3030/sparql/"
ProxyPassReverseCookieDomain "localhost" "example.com"
</VirtualHost>
Тогда, если ваше содержимое находится на http://localhost:3030/
, возможно, вместо /sparql/
в теле HTML будет какое-то жестко закодированное содержимое, которое ссылается на /
. Несмотря на то, что можно также изменить содержимое с помощью mod_substitute, это может привести к другим проблемам. Поэтому рекомендуется использовать поддомен вместо дополнительной части пути, например:
<VirtualHost *:80>
ServerName sparql.example.com
...
ProxyPass "/" "http://localhost:3030/"
ProxyPassReverse "/" "http://localhost:3030/"
ProxyPassReverseCookieDomain "localhost" "sparql.example.com"
</VirtualHost>