Вариант использования Apache

Вариант использования Apache

Я использую Apache для обслуживания нескольких сайтов в мире на моем домашнем сервере на порту 443 с использованием SSL-сертификата. Вчера вечером я установил бинарный файл Linux, который обслуживает сайт только на порту, определенном в его конфигурационном файле. Я не могу заставить Apache обслуживать сайт напрямую.

Итак, этот сайт размещен наhttp://127.0.0.1:8081/но я хотел бы скрыть его за Apache через 443, чтобы я мог получить к нему доступ черезhttps://myserver.duckdns.org/webapp/

Я пробовал это в файле конфигурации моего сайта, но это не сработало:

ProxyRequests off
<Proxy *>
        allow from all
</Proxy>

RewriteEngine On
RewriteRule ^/(.*) /webapp/$1 [P]

<Location /webapp/>
        ProxyPass http://127.0.0.1:8081/
        ProxyPassReverse http://127.0.0.1:8081/
</Location>

Есть идеи, как это сделать?

Я думал, что смогу сделать это с помощью ProxyPass и RewriteRules, но, похоже, у меня не получается заставить это работать должным образом.

Большое спасибо заранее!

решение1

Ваши правила переписывания а) имеют неправильную цель и 2) являются избыточными.

RewriteRule [P]предназначен для использования в качествеальтернативав ProxyPass, а не вместе с ним. Местом назначения перезаписи правила [P] будет URL удаленного веб-приложения, а не локального. Например, можно использовать это:

RewriteRule ^/webapp/(.*) http://127.0.0.1:8081/$1 [P]

илиэтот:

ProxyPass /webapp/ http://127.0.0.1:8081/

илиэтот:

<Location /webapp/>
    ProxyPass http://127.0.0.1:8081/
</Location>

(Примечание: документация Apache рекомендует использовать ProxyPass, когда это возможно.)

Ваш <Proxy *>блок также не нужен, поскольку он применяется только квпередпроксирование, при котором клиент указывает место назначения прокси-сервера (которое вы отключили).

Связанный контент