проблема, помогите пожалуйста.
Что имею: openresty+lua.
Конфиг openresty:
upstream a {
server 1.1.8.1:4707;
}
upstream c {
server 1.1.8.1:4707;
}
server {
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Url-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_ssl_verify off;
if ($request_method = POST ) {
set $upstream '';
access_by_lua '
ngx.req.read_body()
local match0 = ngx.re.match(ngx.var.request_body, "aaa.*")
local match1 = ngx.re.match(ngx.var.request_body, "bbb.*")
if match0 then
ngx.var.upstream = "a"
else
ngx.var.upstream = "c"
end
';
proxy_pass http://$upstream;
}
}
}
Задача: распределить запросы по upstream'ам в зависимости от передааемого метода запроса. Запросы передаются в json-rpc формате.
Проблема: У меня два upstream'а. Один upstream доступен по протоколу http, другой по https и проблема, которая у меня на возникает следющая, в один момент времени работает только 1 upstream.
Даже если создать раздельные аналогичные конфиги, доступен только 1 и работать 1.
Если кто сталкивался, помогите, пожалуйста.
Каким образом можно указать несколько upstream'ов, которые доступны через разные протоколы? Либо я не правильно конфиг прописал?
Не помогает даже указанная директива "proxy_ssl_verify off" в настройках openresty
За ранее спасибо.
вообще https://github.com/openresty/lua-resty-core/blob/master/lib/ngx/balancer.md мне кажется спасет отца русской демократии. остается только написать логику выбора апстрима
Обсуждают сегодня