Мне нужно настроить сервер 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¶m [...] Это похоже на использование нескольких директив 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/;