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

Apache mod_proxy с SSL без перенаправления

У меня есть собственный сервер, работающий за обратным прокси-сервером apache. Поскольку настраиваемый сервер может обрабатывать только HTTP-трафик, я пытаюсь использовать apache для обертывания вокруг него надлежащего SSL и для какой-то HTTP-аутентификации.

Поэтому я включил mod_proxy и mod_ssl и изменил sites-available / default-ssl. Конфигурация следующая:

<Location /server>
    order deny,allow
    allow from all
    AuthType Basic
    AuthName "Please log in"
    AuthUserFile /etc/apache2/htpasswd
    Require valid-user
    ProxyPass http://192.168.1.102:8181/server
    ProxyPassReverse http://192.168.1.102:8181/server
</Location>

Пользовательский сервер доступен из внутренней сети через местоположение, указанное в директиве ProxyPass.

Однако, когда к прокси-серверу обращаются извне, он представляет приглашение входа в систему, и после успешной аутентификации я получаю пустую страницу со словами The resource can be found at http://192.168.1.102:8181/server. Когда я снова набираю внешний URL-адрес в уже аутентифицированном экземпляре браузера, я правильно перенаправляюсь на интерфейс сервера.

В access.log много записей о том, что мой браузер успешно выполняет запросы GET, а прокси-сервер успешно обслуживает ресурс / server. Однако ресурс содержит не интерфейс сервера, а эту пустую страницу с этими словами.

После некоторого расследования мне стало ясно, что только Google Chrome показывает такое поведение. Safar и Firefox перенаправляли нормально. Поскольку я не предполагал, что Google создал свой браузер с такой «функцией», а другие нет, я проверил свои расширения. И: у меня было установлено одно расширение под названием «HTTPS Everywhere». Вот в чем дело. После отключения этого расширения все работает как надо.