Назад | Перейти на главную страницу

ProxyPassMatch не работает

У меня есть сервер, работающий по адресу localhost: 3030, и я могу получить доступ к ряду веб-страниц. Когда я включаю localhost:3030/index.html, Я получаю веб-страницу. Используя ProxyPassMatch, я пытался перенаправить запрос на example.com/sparql/<something> к locahost:3030/<something> Но это не работает. Я использую 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>