Welcome! Log In Create A New Profile

Advanced

nginx as reverse proxy for weblogic

teo
January 27, 2013 02:45AM
Была мысль заменить связку apache+ webllogic-plugin на nginx. Но сколько раз не пробовал - все равно родной плагин работает лучше.
Неужели nginx за столько времени не додумался до того, что 10 лет назад сделали в BEA?

Сейчас я пробую вот такую конфигурацию

upstream web_backend {
ip_hash;
least_conn;
server 192.168.2.11:7001;
server 192.168.2.12:7001;
server 192.168.2.13:7001;
}

location / {
proxy_pass http://web_backend;
proxy_http_version 1.1;
proxy_set_header WL-Proxy-Client-IP $remote_addr;
proxy_set_header Proxy-Client-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_read_timeout 600;
proxy_send_timeout 1;
}

Результат - да, все работает только до определенного момента (секунд этак 30). Видно что все запросы валятся на один инстанс weblogic, забивают все его очереди и в результате все висит.
Т.е. почему нет заявленного round-robin и когда nginx решит переключиться на другой инстанс - не известно.
Впрочем я конечно не уверен что все происходит именно так, но факты такие - через некоторое время консоль управления подвисает - это происходит обычно тогда, когда один из инстансов тупо не отвечает ни на какие запросы. Далее nodeManager, видя что его инстанс не отвечает - валит его и запускает вновь.
Если консоль все-таки ответила, то видно что кол-во конектов на этих 3х инстансах распределено примерно так 10+1200+10.

Почему же этого не происходит при родном плагине?
Во 1х плагин постоянно тестирует инстансы, посылая запрос на несуществующую страничку и при этом его цель не получить какой-то конкретный ответ, а просто увидеть что инстанс жив, даже если это ответ 404. И заодно оценить насколько тот занят - если задержка велика - значит надо выбрать другой.
А тестировать инстанс пришедшим запросом - а вдруг это поисковый запрос, который требует много ресурсов и ответ будет долгим?
Кстати в параметрах настройки плагина нет таймаутов - т.е. если вы будете вытаскивать 20гиговый файл, то вас не срубят на 10й минуте.
Во 2х, он добавляет куки в ответ инстанса, с тем, чтобы знать на каком конкретно сервере исполнялся предыдущий запрос.
При этом никакие циски с NAT и диапазоном IP адресов уже не страшны (это когда каждый конект идет через другой адрес) - он заботится о том, чтобы инстансу было легче доставать сессию клиента.
В 3х плагин поддерживает keep_alive со стороны инстанса.

Так может все-таки добавить такие фичи в ngx_http_proxy_module?
Или я что-то пропустил и кто-то знает решение с имеющимся функционалом?
Версии в которых это пробовал я - 1.0.15 из epel и 1.2.6.
Subject Author Posted

nginx as reverse proxy for weblogic

teo January 27, 2013 02:45AM

Re: nginx as reverse proxy for weblogic

Илья Шипицин January 27, 2013 05:10AM

Re: nginx as reverse proxy for weblogic

teo January 27, 2013 08:38AM

Re: nginx as reverse proxy for weblogic

Роман Москвитин January 27, 2013 09:40AM

Re: nginx as reverse proxy for weblogic

teo January 27, 2013 10:03AM

Re: nginx as reverse proxy for weblogic

Vadim Lazovskiy January 27, 2013 11:32AM

Re: nginx as reverse proxy for weblogic

Роман Москвитин January 27, 2013 02:18PM

Re: nginx as reverse proxy for weblogic

Валентин Бартенев January 27, 2013 09:00AM

Re: nginx as reverse proxy for weblogic

teo January 27, 2013 12:17PM

Re: nginx as reverse proxy for weblogic

Илья Шипицин January 27, 2013 01:20PM

Re: nginx as reverse proxy for weblogic

teo January 27, 2013 04:54PM

Re: nginx as reverse proxy for weblogic

Andrey Repin January 27, 2013 08:06PM

Re: nginx as reverse proxy for weblogic

Илья Шипицин January 27, 2013 11:16PM

Re: nginx as reverse proxy for weblogic

teo April 23, 2013 02:12PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 296
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready