현재 Apache 가상 호스트를 연구 중이며 해당 구성과 관련하여 약간의 혼란이 있습니다.
폴더 에 가상 호스트 파일을 생성하고 루트로 sites-available
명령을 사용하여 해당 사이트를 활성화했습니다 a2ensite example.com.conf
. 그렇게 하면 sites-enabled
폴더에 심볼릭 링크가 생성되는 것을 알 수 있습니다.
동작을 더 철저하게 이해하기 위해 example.com.conf
파일을 에 직접 저장하고 sites-enabled
심볼릭 링크를 통한 간접 참조를 피하는 실험을 했습니다. Apache를 다시 시작한 후에도 가상 호스트가 계속해서 제대로 작동하는 것을 보고 놀랐습니다.
폴더 에 저장하지 않고 심볼릭 링크를 사용하지 않고 example.com.conf
에만 파일을 저장하면 문제가 발생합니까?sites-enabled
sites-available
답변1
이 폴더 구조는 관리 효율성에 관한 것입니다. 모든 모듈과 가상 호스트 구성을 단일 httpd.conf
. 따라서 예를 들어 Debian에서는 구성을 여러 파일로 분리하기 위해 와일드카드 포함이 사용되었습니다.
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
이렇게 하면 일치하는 모든 경로가 sites-enabled/*.conf
구성에 추가되고 Apache HTTPd의 경우 텍스트 파일인지 심볼릭 링크인지는 중요하지 않습니다. 이러한 관점에서 볼 때 파일 <VirtualHost>
에 블록이 있는지 아니면 다른 Apache 구성인지는 중요하지 않습니다 . 등 example.com.conf
의 구성이 포함된 파일을 갖는 것도 완벽하게 가능합니다 .example.net
색다른 구성으로 인해 직면하게 될 문제는 관리 용이성 부족과 관련이 있습니다.
a2ensite
/ 를 사용하여 가상 호스트를 활성화하거나 비활성화할 수 없습니다a2dissite
.# a2dissite example.com ERROR: Site example.com does not exist!
공식 문서(man 페이지)는 쓸모가 없게 됩니다.
사이트를 일시적으로 쉽게 비활성화할 수는 없습니다. 예를 들어 포괄적인 가상 호스트를 사용하면보수 작업중업데이트를 위해 사이트가 비활성화된 동안 표시되는 페이지입니다.
동일한 서버를 관리하는 다른 사람이 이러한 공식 명령 대신
ln -s
및를 사용했을 수도 있습니다 .rm
사이트를 일시적으로 비활성화하려고 시도하는 동안 실수로 사이트를 삭제할 수도 있습니다.당신이 일반적인 관행을 따르지 않았다는 것을 다른 사람은 아무도 모릅니다. 몇 달이 지나면 당신도 그것을 잊어버릴 것이다. 그 시점에서 문서나 튜토리얼을 따르는 것이 더 이상 설정에 적용되지 않는 이유에 대해 Serverfault에 대한 새로운 질문을 할 것입니다.