Не могу войти после proxypass

Я настроил сервер Apache в качестве обратного прокси-сервера, чтобы указать 2 разных DNS-имени для правильных серверов. Один из них отлично работает, это простая веб-страница с несколькими страницами.

В другом нет, это более сложная система, которая требует, чтобы пользователи сначала вошли в систему. Проблема с этой страницей началась, так как для доступа к ней мне нужно добраться до "10.105.27.230/app". Без /app не работает. Дело в том, что это приложение само установило apache и находится не в папке /var/www/, а в другом месте.

Прямо сейчас я могу попасть на страницу, но когда я пытаюсь войти на сайт example.com, он просто перенаправляет меня на example.com/app и показывает ту же страницу входа. Я думаю, что это как-то связано с моим прокси-пассом, но не могу найти правильную конфигурацию, так как впервые работаю с прокси.

Сначала, когда я пытался настроить обратный прокси (прокси-сервер), страница работала, но без css и изображений.

<VirtualHost *:80>
   DocumentRoot /var/www/html
    ServerName example.com
    ProxyRequests Off
    <Proxy *>
      Order deny,allow
      Allow from all
    </Proxy>
    ProxyPreserveHost on
    ProxyPass / http://10.105.27.230/app/
    ProxyPassReverse / http://10.105.27.230/app/
</VirtualHost>

Я искал решения и думаю, что исправил это с помощью другого прокси-пасса перед исходным. После этого страница работает с css и изображениями, но после входа в систему она перенаправляется на example.com/app.

    ProxyPass /app http://10.105.27.230/app/
    ProxyPassReverse /app http://10.105.27.230/app/
    ProxyPass / http://10.105.27.230/app/
    ProxyPassReverse / http://10.105.27.230/app/

Если я перехожу непосредственно к http://10.105.27.230/приложение/, я могу войти в систему, и после входа в систему отображается эта ссылка http://10.105.27.230/приложение/#/домашний. А ссылка меняется только после /#/.

Как я могу заставить его работать правильно, чтобы я мог войти в систему и работать с системой с сайта example.com?

Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
432
1

Ответы 1

У меня была аналогичная проблема. Проблема была в том, что

  1. Я тестировал приложение без TLS (просто пробный запуск на старом добром HTTP).
  2. Я запускал больше приложений на прокси-сервере и имел глобальные настройки для защиты файлов cookie.

Случилось так, что файлы cookie были удалены (параметр «Безопасный» означает, что файлы cookie не отправляются через HTTP, а отправляются только через HTTPS). Сервер приложений создал их, но они так и не попали в веб-браузер. Быстрое решение, позволяющее не скомпрометировать другие приложения, заключалось в том, чтобы изменить заголовок только для тестируемого приложения, то есть под «виртуальным прокси-хостом». Я добавил:

Header edit* Set-Cookie "(session=.*)(;Secure)" "$1"

Я никогда не использовал приложение без TLS, даже при тестировании. Так что это заняло у меня некоторое время, чтобы взломать.

Другие вопросы по теме