Я не понимаю, как работают vhosts в Apache 2.4. Я включил виртуальные хосты, и на моем сервере настроены два веб-сайта. Я думаю, это означает, что хост по умолчанию (/ var / www / html) больше не работает. Но какие части httpd.conf замещаются виртуальными хостами? Применяются ли такие включения, как «conf.d» в httpd.conf, к виртуальным хостам, или мне нужно назначать их вручную? У меня есть в httpd.conf строка, которая назначает специальный заголовок RemoteIPHeader, нужно ли мне включать эту строку в каждый из моих файлов .conf виртуального хоста? Пожалуйста, помогите мне понять, как работает httpd.conf при включенных виртуальных хостах. Спасибо!
Каждая директива перечисляет контекст в котором это действительно. Другими словами, где его можно использовать.
В контекст может быть любое сочетание:
s - конфигурация сервера Это означает, что директива может использоваться в файлах конфигурации сервера (например,
httpd.conf
), но не в<VirtualHost>
или<Directory>
контейнеры. Это не разрешено в.htaccess
файлы вообще.
v - виртуальный хост Этот контекст означает, что директива может находиться внутри<VirtualHost>
контейнеры в файлах конфигурации сервера.
d - каталог Директива, отмеченная как действительная в этом контексте, может использоваться внутри<Directory>
,<Location>
,<Files>
,<If>
, и<Proxy>
контейнеры в файлах конфигурации сервера с учетом ограничений, указанных в разделах конфигурации.
h - .htaccess Если директива действительна в этом контексте, это означает, что она может появляться внутри каждого каталога.htaccess
файлы. Это может не быть обработано, хотя в зависимости от текущих активных переопределений.
Если директива используется несколько раз, контекст, область действия и порядок, в котором встречаются директивы, определяют какая директива будет иметь приоритет.
Что касается VirtualHost
записи используемые там директивы переопределят настройки по умолчанию, но будут применяться только для этой записи виртуального хоста.
С виртуальным хостингом на основе имени первый <VirtualHost addr:port>
становится значением по умолчанию, которое будет обслуживать все запросы, которые не соответствуют никаким явно определенным именам ServerName / ServerAlias, используемым в других записях VirtualHost.