Доброго времени суток!
Имеется nginx, который является фронтендом для некого jboss сервиса. Проблема в том, что библиотека struts, используемая в jboss (или еще какая-то) судя по всему берет значение доменного из запроса. По этому есть делать proxy_pass http://127.0.0.1:8080/ везде, где используются абсолютные адреса (<base ...> и редиректы) вылезает 127.0.0.1.
В качестве костылика было сделано следующее:
location / {
proxy_pass http://domain.name:8080/;
}
domain.name прописано в /etc/hosts как 127.0.0.1.
В результате jboss возвращает везде правильные ссылки (http://domain.name/тратата), однако понятно что это костылик, который делает распределение нагрузки и fail-over невозможным.
Jboss - жуткий монстр, который лучше не трогать лишний раз, да и я не очень хорошо с ним знаком, поэтому (и еще по некоторым причинам) было бы гораздо удобнее переопределить имя хоста с помощью nginx, т.е. я хочу сделать что-то типа
location / {
proxy_pass http://127.0.0.1:8080/;
param hostname 'domain.name';
}
Дабы nginx коннектился на 127.0.0.1:8080, а в GET/POST/... запросах указывал domain.name.
Возможно это как-то можно сделать с помощью ngx_http_headers_module?
--
Vladimir Rusinov
Voronezh, Russia
UNIX Admin @ Murano Software
|