Как я могу настроить ограничение Nginx тысячами различных server_name без создания тысяч внешних конфигурационных файлов или записи очень длинной строки server_name?
Действительно, я хотел бы, чтобы Nginx был обратным прокси-сервером только для server1.com, server2.com и т. Д.
Лучшим решением для меня было бы иметь один внешний файл конфигурации, содержащий мои ограниченные имена серверов: server1.com, server2.com и т. Д.
Является ли это возможным ?
Хорошо, спасибо за ваши ответы, работает без рег. выражения. Просто большой список server_name, как объяснил kolbijack. Спасибо.
Ответы:
Вы можете поместить директиву server_name в файл самостоятельно, а затем просто включить ее из своего блока сервера:
Файл server_names просто нуждается в server_name вверху и; внизу, чтобы быть действительной директивой.
источник
ServerAlias
директив и до 16 миллионовDeny from
директив) в Apache. 5000 доменов дают измеримую, но небольшую задержку. Увеличивая число, я обнаружил, что задержка начала становиться заметной в пределах 50 000. В Apache (и, вероятно, также в nginx) список хранится в ОЗУ, что означало, что с самым большим набором, который я пробовал, я мог запустить только один дочерний процесс в моей доступной ОЗУ.server_name
директиве и отвечаетRequest rate: 36900.6 req/s (0.0 ms/req)
Request rate: 34716.8 req/s (0.0 ms/req)
server_name
Объявление в вашемserver {}
блоке может быть регулярным выражением, это должно позволить вам соответствовать SERVER_NAME сек в пределах заданного шаблона.Более подробную информацию об этом можно увидеть здесь: http://nginx.org/en/docs/http/server_names.html#regex_names
источник