<Directory>
다음과 같이 블록이 섹션 외부에 배치되는 VirtualHost 구성의 예를 자주 봅니다 <VirtualHost>
.
# /etc/httpd/conf.d/example1.conf
<Directory /var/www/html/example1>
Require all granted
</Directory>
<VirtualHost *:80>
DocumentRoot "/var/www/html/example1"
ServerName www.example.com
ServerAlias example.com
ServerAdmin [email protected]
ErrorLog "/var/log/httpd/error_log_example1"
CustomLog "/var/log/httpd/access_log_example1" combined
</VirtualHost>
아래 예시에는 <Directory>
블록이 포함되어 있지 않나요?이내에이 <VirtualHost>
섹션이 의미상 더 정확합니까?
# /etc/httpd/conf.d/example2.conf
<VirtualHost *:80>
<Directory /var/www/html/example2>
Require all granted
</Directory>
DocumentRoot "/var/www/html/example2"
ServerName www.example.org
ServerAlias example.org
ServerAdmin [email protected]
ErrorLog "/var/log/httpd/error_log_example2"
CustomLog "/var/log/httpd/access_log_example2" combined
</VirtualHost>
블록이 단일 VirtualHost에 속하고 필요한 경우 기본 httpd.conf의 설정을 재정의하기 때문에 두 번째 접근 방식이 올바른 것 같습니다.
편집: TLS/SSL이 활성화된 경우 두 번째 방법을 사용하려면 블록을 복사해야 하는데 <Directory>
이는 매우 DRY가 아닙니다. 따라서 첫 번째 접근 방식이 올바른 것 같습니다.
답변1
Apache 문서로 시작하기구성 섹션:
<Directory>
가장 짧은 디렉터리 구성 요소부터 가장 긴 디렉터리 구성 요소까지 처리가 수행됩니다. 예를 들어 은(는)<Directory "/var/web/dir">
이전에 처리됩니다<Directory "/var/web/dir/subdir">
.여러 개가 있는 경우
<Directory>
일부는 구성 파일 순서대로 처리되는 동일한 디렉터리에 적용됩니다.내부 부분
<VirtualHost>
부분적으로가상 호스트 정의 외부의 해당 섹션 이후에 적용됩니다.. 이를 통해 가상 호스트가 주 서버 구성을 재정의할 수 있습니다.
당신이 가정한 대로 두 조각 모두 정확합니다.