가상 호스트 파일에 두 개가 포함되어야 합니까?지시문?

가상 호스트 파일에 두 개가 포함되어야 합니까?지시문?

좋은 보안 방법은 가상 호스트의 모든 것을 아무것도 허용하지 않도록 재설정한 다음 특정 액세스를 허용하는 또 다른 지시어를 갖는 것이라고 들었습니다. 다음과 같습니다.

<VirtualHost *:80>
  DocumentRoot /home/example/public_html

  <Directory />
    AllowOverride None
    Order Deny,Allow 
    Deny from all
  </Directory>

  <Directory /home/example/public_html >
    Options -Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order Allow,Deny
    Allow from all
  </Directory>
</VirtualHost>

그것은 일종의 의미가 있지만 확실하지 않으므로 상황을 설정하는 가장 좋은 방법에 대한 몇 가지 의견을 듣고 싶습니다.

답변1

실제로 거기에 작성된 지시문을 사용하면 <Directory />해당 가상 호스트에 대해 아무것도 변경하지 않고 대신 디렉토리에 대해 동일한 재정의를 반복해서 선언하게 됩니다 /.

따라서 해당 옵션은 아무 작업도 수행하지 않았거나 가장 좋은 경우 마지막 <Directory />섹션만 적용되었습니다.

https://httpd.apache.org/docs/current/sections.html#merging

해당 섹션이 모든 가상 호스트에 대해 동일해 보인다면 문제가 발생하지 않지만 일부 가상 호스트가 다르고 시간이 지남에 따라 가상 호스트 수가 변경되면 어떤 <Directory />지시어가 적용되었는지 파악하기가 혼란스러울 것입니다.

모든 가상 호스트에서 섹션을 제거 <Directory />하고 전역 구성에서 한 번 선언하겠습니다.

관련 정보