как я могу настроить Nginx, ограничивающий тысячи различных имен серверов, без создания тысяч внешних файлов конфигурации или написания очень длинной строки server_name?
В самом деле, я бы хотел, чтобы Nginx был обратным прокси только для server1.com, server2.com и т. Д.
Лучшим решением для меня было бы иметь один внешний файл конфигурации, содержащий мои ограниченные имена серверов: server1.com, server2.com и т. Д.
Является ли это возможным ?
Ок, спасибо за ответы, работает без рег. выражения. Просто большой список server_name, как объяснил kolbijack. Спасибо.
Вы можете поместить директиву server_name в файл отдельно, а затем просто включить ее из своего серверного блока:
# example.com.conf
server {
include /path/to/server_names;
...
}
# /path/to/server_names
server_name
example.com
domain.com
foo.com
;
Файл server_names просто должен быть server_name вверху и; внизу, чтобы быть действующей директивой.
В server_name
заявление в вашем server {}
block может быть регулярным выражением, это должно позволить вам сопоставить server_name s в заданном шаблоне.
Более подробную информацию об этом можно увидеть здесь: http://nginx.org/en/docs/http/server_names.html#regex_names