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

Прокси http nginx для нескольких сайтов

Мне нужно настроить сервер Nginx, который будет использоваться в качестве прокси-сервера http (s) и кэширования, как сервер Apache, с директивами proxy_pass и proxy_pass_reverse.

Система будет такой: Сервер nginx отвечает на запросы mydomain.com. Если я наберу mydomain.com/redmine, сервер nginx должен будет использовать proxy_pass по внутреннему адресу (пример: 192.168.0.207). То же самое и для других сервисов (например, mydomain.com/zabbix). Если я перейду на redmine, URL-адрес будет mydomain.com/redmine/page1&param [...] Это похоже на использование нескольких директив proxy_pass и proxy_pass_reverse на виртуальном хосте apache.

У меня проблемы с такими сайтами, как Redmine, потому что, если я нажимаю ссылку на Redmine, mydomain.com/redmine/page1 перенаправляется на mydomain.com/page1, и это вызывает ошибку 404 (поиск веб-страницы выполняется на сервере nginx). Если я ввожу напрямую mydomain.com/redmine/page1, он работает.

Как я могу исправить эту проблему? Спасибо

редактировать:

Эта конфигурация мне не подходит. Например, я пробовал:

location /pma {
    proxy_pass      http://192.168.1.208/phpmyadmin;
    proxy_redirect https://mydomain.com/ https://mydomain.com/pma/;
}

Страница входа загружается правильно, но когда я пытаюсь войти в систему, мой браузер открывает эту ссылку: http://mydomain.com/phpmyadmin/index.php?lang=[...] и получает ошибку 404.

В proxy_redirect Директива может использоваться для изменения перенаправлений, отправляемых внутренними серверами. На основе вашего описания поведения вам потребуется следующая конфигурация:

proxy_pass http://192.168.0.207;
proxy_redirect http://mydomain.com/ http://mydomain.com/redmine/;

Попробуйте это для phpMyAdmin:

proxy_pass http://192.168.1.208/phpmyadmin/;
proxy_redirect http://mydomain.com/phpmyadmin/ http://mydomain.com/pma/;