"sites-enabled" 폴더에 vhost 구성 파일을 직접 포함하면 어떻게 되나요?

"sites-enabled" 폴더에 vhost 구성 파일을 직접 포함하면 어떻게 되나요?

현재 Apache 가상 호스트를 연구 중이며 해당 구성과 관련하여 약간의 혼란이 있습니다.

폴더 에 가상 호스트 파일을 생성하고 루트로 sites-available명령을 사용하여 해당 사이트를 활성화했습니다 a2ensite example.com.conf . 그렇게 하면 sites-enabled폴더에 심볼릭 링크가 생성되는 것을 알 수 있습니다.

동작을 더 철저하게 이해하기 위해 example.com.conf파일을 에 직접 저장하고 sites-enabled심볼릭 링크를 통한 간접 참조를 피하는 실험을 했습니다. Apache를 다시 시작한 후에도 가상 호스트가 계속해서 제대로 작동하는 것을 보고 놀랐습니다.

폴더 에 저장하지 않고 심볼릭 링크를 사용하지 않고 example.com.conf에만 파일을 저장하면 문제가 발생합니까?sites-enabledsites-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에 대한 새로운 질문을 할 것입니다.

관련 정보