Назад | Перейти на главную страницу

Приоритет при определении виртуальных хостов, доступных для сайтов

Linode предлагает определять каждый виртуальный хост в отдельном файле в /etc/apache2/sites-available (в ubuntu), а затем включите каждый сайт, используя a2ensite. Я прихожу с VPS, где все мои виртуальные хосты определены в одном httpd.conf файл и пытается преобразовать вещи в рекомендуемый формат.

Одна из вещей, которые я установил, - это поддомен с подстановочными знаками для моего основного сайта, который позже отображается в пользовательском пространстве. Однако у меня также есть статические поддомены. У меня сложилось впечатление, что статические поддомены должны располагаться над подстановочным знаком в моей конфигурации, поэтому при доступе к одному из статических поддоменов apache использует правильный виртуальный хост вместо подстановочного символа.

Если это правда, как можно определить приоритет при использовании одного файла для каждого сайта? Или мне нужно просто придерживаться одного файла сайта и поместить все поддомены в тот же файл, что и основной виртуальный хост?

Apache обрабатывает содержимое подкаталогов config в алфавитно-числовом порядке сортировки (правильное название - последовательность локальной сортировки, но Apache не использует эту терминологию).

Следовательно, используйте имена файлов для установки порядка. Вы можете добавлять префиксы или суффиксы ко всем именам файлов или только к некоторым из них, придумывать имена, которые будут правильно сортировать или что-то еще, что будет плавать на вашей лодке, если они сортируются правильно. Однако я лично предпочитаю использовать префиксы, потому что совершенно ясно, что вы делаете.

С такой файловой структурой вы храните файлы на /etc/apache2/sites-available и a2ensite просто свяжите эти файлы на /etc/apache2/sites-enabled.

Если вы хотите установить приоритет, вам необходимо убедиться, что файлы в sites-enabled сортируются в соответствии с вашими предпочтениями. Пример:

$ ls -l /etc/apache2/sites-enabled/
00default -> ../sites-available/default
01siteA.com -> ../sites-available/siteA.com
02siteB.com -> ../sites-available/siteB.com
99siteZ.com -> ../sites-available/siteZ.com

Помимо того, что вы немного более управляемы и легче включать / отключать vhosts, нет никаких причин, по которым вы необходимость для поддержания этой структуры (/ etc / apache2 / sites-available / conf_file). Если вы предпочитаете хранить все в одном файле, просто продолжайте это делать.