Тогда я другое не понимаю. Зону я создаю в секции http при этом указываю переменную $document_root, а директива limit_conn идёт уже в server. Но получается, что в этом случае используется глобальный $document_root который задан по умолчанию? Если да, то это опять бага, потому что по моему скромному мнению в виртуальном сервере нельзя разрешать использовать limit_conn с чужим $document_root, потому что это бессмыслено во-первых и путает во-вторых.
Вообще-то логичным было бы такое поведение. $document_root подставляется исходя из кокнретного виртуального сервера и сохраняется в буфере зоны вместе с числом открытых коннектов к этому $document_root. А limit_conn проверяет $document_root из того места, где этот limit_conn вызывается,
т.е. например из виртуального сервера, значит limit_conn должен проверять root того сервера.
2: jackal Спасибо, но если вы видели мой пример, то там так и сделано.
а чему равен $document_root ?
в той конфигурации что вы привели нет директивы root
Вот я в святой наивности и считаю, что $document_root должен быть для каждого виртуального сервера своим. Или это не так? Если это не так, то я считаю это багом nginx, потому что тогда он не должен позволять использование $document_root в limit_zone в общей секции http, а не в server. Или я опять что-то не понимаю?