LINUX.ORG.RU
решено ФорумAdmin

Nginx conflicting parameter. Проксирование большого числа парметров через map

 ,


0

1

Есть большое кол-во параметров (мак адресов) которые прилетают в определённой куке, которые я соответственно достаю из этой куки функцией и проксирую на нужный мне сервер. Пример /etc/nginx/sites-available:

map $cookie_name $backend {
           default nameserver;
           AA:BB:CC:DD:EE:F1 nameserver;
           AA:BB:CC:DD:EE:F2 nameserver;
           .....
           AA:BB:CC:DD:EE:F3 nameserver;
С маленьким количеством мак адресов всё работает, когда добавляю 100 строк появляется ошибка:
conflicting parameter "AA:BB:CC:DD:EE:F3" in /etc/nginx/sites-enabled/default:67
Ставлю в /etc/nginx/sites-available на этой строке знак # ошибка пропадает и появляется новая на следующей строке и т.д.



Последнее исправление: forzasakh (всего исправлений: 4)

Попробуй мак в кавычки экранировать.

Deleted
()

Такая ошибка выдаётся, если ты пытаешься в хеш добавить дубликат ключа. Проверь, что этот «AA:BB:CC:DD:EE:F3» не указан в map дважды.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Одинаковых нет 100% они все разные. Единственное некотрые маки могут отличаться один символом в последнем актете, типа: AA.BB.CC.DD.E1 AA.BB.CC.DD.E2

forzasakh
() автор топика
Ответ на: комментарий от forzasakh

Ты можешь сделать пример конфига, на котором это воспроизводится? Желательно, поменьше размерами.

i-rinat ★★★★★
()
Ответ на: комментарий от Deleted

До компа доберусь, сделаю из двух, проверю, с ковычками и т.д. Отпишусь тут обязательно.

forzasakh
() автор топика
Ответ на: комментарий от Deleted

Спасибо, дома буду проверю. В прошлый раз твой совет с ипользованием map помог))

forzasakh
() автор топика
Ответ на: комментарий от Deleted

Так, вот добрался до компа. Проверил и с кавычками «AA.BB.CC.DD.EE» и без ковычек всё одинаково, ошибка появляется всегда. Но при это если конфиг с кол-ом мак адресов сократить до к примеру 3-4 то всё проходит и на этот мак nginx не ругается. Вообще у меня 250 строк - мак адресов, если все ставлю сразу, то на 69 строке появляется ошибка. Nginx map не может я так понимаю переварить такое количество. Сейчас играюсь с параметром map_hash_max_size но какой бо\ём бы не поставил всё, равно всегда на одной и той же строке (69) с одним и тем же маком вылазит:

conflicting parameter "AA:BB:CC:DD:EE:F3" in /etc/nginx/sites-enabled/default:67

forzasakh
() автор топика
Ответ на: комментарий от Deleted

На тестовой машине решил, оказывается всё было легко, я дурак оказывается не удалил default из /etc/nginx/sites-enabled/default А на работающей машине, nginx старый хз даже какой версии, установлен не из репа. И где то эта гадина похоже держит такой же дефаулт. Сейчас все конфигурации я делаю тут:

/usr/local/nginx/conf/nginx.conf
и выдаёт мне ошибку:
conflicting parameter "AA:BB:CC:DD:EE:F3" in /usr/local/nginx/conf/nginx.conf:94
grep -Ri «AA:BB:CC:DD:EE:F3» /etc/nginx/* аааааааааааа фак!!!! /usr/local/nginx/conf/nginx.conf: AA:BB:CC:DD:EE:F3 nameserver; /usr/local/nginx/conf/nginx.conf: AA:BB:CC:DD:EE:F3 nameserver;

forzasakh
() автор топика
Ответ на: комментарий от Deleted

А ещё людей убеждал что нет совпадений =)) соррри...

grep -Ri «AA:BB:CC:DD:EE:F3» /etc/nginx/* 
/usr/local/nginx/conf/nginx.conf: AA:BB:CC:DD:EE:F3 nameserver;
/usr/local/nginx/conf/nginx.conf: AA:BB:CC:DD:EE:F3 nameserver;

forzasakh
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.