ProxyPassMatch не работает

У меня есть сервер, работающий на 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 не отправляется вернулся. Есть ли проблема с конфигурацией?

0
задан 7 August 2017 в 16:11
1 ответ

Зачем использовать 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>
2
ответ дан 4 December 2019 в 13:30

Теги

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