пожалуйста😊
                  
                  
                  
                  
                  
                  Есть такой блок:
                  
                  
                  
                  
                  
                      map $http_key $base {
                  
                  
                       default 0;
                  
                  
                       "123" $binary_remote_addr;
                  
                  
                      }
                  
                  
                  
                  
                  
                      map $base $limit {
                  
                  
                        0  $binary_remote_addr;
                  
                  
                        1  "";
                  
                  
                      }
                  
                  
                  
                  
                  
                      limit_req_zone $limit zone=one:100m rate=1000r/m;
                  
                  
                      limit_req            zone=one burst=30;
                  
                  
                      limit_req_log_level  info;
                  
                  
                      limit_req_status   
                  
                  
                  
                  
                  
                  Работает так:
                  
                  
                  
                  
                  
                  Если запрос с определенным $http_key (123, в примере), то никаких ограничений по скорости не применяется.
                  
                  
                  Для всех остальных выставляется лимит в 1000r/m
                  
                  
                  
                  
                  
                  Не могу понять логику, если засылаем при запросе кей 123, то после первого маппинга
                  
                  
                  
                  
                  
                      map $http_key $base {
                  
                  
                       default 0;
                  
                  
                       "123" $binary_remote_addr;
                  
                  
                      }
                  
                  
                  
                  
                  
                  $base =  $binary_remote_addr;
                  
                  
                  
                  
                  
                  и при втором маппинге, если $base равняется 1, то в $limit записывается пустая строка.
                  
                  
                  
                  
                  
                      map $base $limit {
                  
                  
                        0  $binary_remote_addr;
                  
                  
                        1  "";
                  
                  
                  
                  
                  
                  Вопрос - после первого маппинга $base же равняется $binary_remote_addr, но при этом  во втором проверяется равняется ли $base 0 либо 1., как в таком случае срабатывают ограничения?
                  
                  
                
Что-то вы нагородили. У вас $base не может равняться 1 никак.
Обсуждают сегодня