Size: a a a

2020 June 02

P

Pavel in nginx_ru
то есть какой оверхед от этого получился
источник

AN

Anton Noginov in nginx_ru
А какая разница, на самом деле?

Нужен тренд, а не абсолютные значения

Вылавливать, что бэкэнд втупливает - лучше непосредственно в бэкэнде.
источник

AN

Anton Noginov in nginx_ru
Если /api/getList вчера занимал 5ms, а сегодня 15 - то что-то происходит.
Если в бэке трейсер проблем не показывает - и при этом recv-q растет - то воркеров нехватает
источник

w

wolfich in nginx_ru
Всем привет! Может, кто сможет помочь?
https://stackoverflow.com/questions/62156517/cant-access-ngx-var-in-rewrite-by-lua-block
источник

AN

Anton Noginov in nginx_ru
Оно же ngx.var.upstream_new, не?
источник

w

wolfich in nginx_ru
да, верно, поправил в вопросе
источник

w

wolfich in nginx_ru
это я уже от безысходности пробовал разные варианты
источник

w

wolfich in nginx_ru
так тоже не работает
источник

AN

Anton Noginov in nginx_ru
А всю секцию конфига посмотреть можно?
источник

w

wolfich in nginx_ru
сложно... конфиг огромный, надо обфусцировать. Факт в том, что он рабочий. Я начал nginx переносить в докер и там не работает. на хосте - работает
источник

w

wolfich in nginx_ru
может, какие-то конкретные выдержки нужны?
источник

ZZ

Zudva Zudvin in nginx_ru
Всем привет! Кто знает надежные и доступные выделенные сервера в европе и сша?
источник

AN

Anton Noginov in nginx_ru
Сложно сказать.
Что дальше с запросом происходит?
Потому как вот такое работает, как ожидается
    location / {
      set $ups '' ;

      rewrite_by_lua_block {
        ngx.var.ups="1.1.1.1"
      }
      add_header Ups $ups ;
      root /tmp ;
      autoindex on ;
   }


А вот такое - нет

    location / {
      set $ups '' ;

      rewrite_by_lua_block {
        ngx.var.ups="1.1.1.1"
      }
      return 200 "$ups";

   }
источник

w

wolfich in nginx_ru
дальше  proxy_pass http://$upstream_new;
источник

w

wolfich in nginx_ru
но оно дотуда не дойдет, т.к. $upstream_new так и остается пустая
источник

AN

Anton Noginov in nginx_ru
Эм. А точно надо тогда цепляться на rewrite?
источник

w

wolfich in nginx_ru
ну там более сложная логика, я для дебага упростил до одной строчки
источник

AN

Anton Noginov in nginx_ru
Тогда не знаю.
источник

w

wolfich in nginx_ru
в оригинале так:
       set $upstream "";
       rewrite_by_lua_block {
           local routes = ngx.shared.routes
           local route = routes:get(ngx.var.http_host)
           if route == nil then
               local redis = require "redis"
               local client = redis:new()
               local ok, error = client:connect("127.0.0.1", 6379)
               if ok then
                   route = client:get(ngx.var.http_host)
               else
                   ngx.log(ngx.ERR, "Redis connection failure")
               end
           end
           if route ~= nil and route ~= ngx.null then
               ngx.var.upstream = route
               routes:set(ngx.var.http_host, route)
               if route == "maintenance" then
                   ngx.req.set_uri("/errorpage/" .. ngx.var.errorpage_template .. "/maintenance", true)
               end
           else
               ngx.exit(ngx.HTTP_NOT_FOUND)
           end
       }
       proxy_pass http://$upstream;
источник

AN

Anton Noginov in nginx_ru
Ага.
источник