아파치 컨테이너(섹션) 지시어
컨테이너 (섹션)
컨테이너 지시어는 섹션이라고도 하며 지시어의 범위를 제한하는 역할입니다. 지시어가 컨테이너 밖에 있다면 서버 전체에 영향을 받게됩니다.
설 명 | |
---|---|
VirtualHost | 하나의 아파치 서버가 여러 웹 사이트를 운영할 수 있도록 해주는 가상호스트를 말합니다. |
Directory, DirectoryMatch | 이 컨테이너는 특정 폴더나 하위폴더에만 적용됩니다. Directory 는 폴더의 패턴을 파라미터로 받을 수 있으며, DirectoryMatch는 "^/www/.*/[0-9]{4}"와 같은 정규식을 파라미터로 받을 수 있습니다. |
Location, LocationMatch | 특정한 URL이나 URL 패턴에만 적용받습니다. LocationMatch 는 "/{mydomain|home}/data" 와 같은 정규식 패턴을 받을 수 있습니다. |
Files, FilesMatch | Directory 나 Location 과 같은 패턴은 같지만 특정한 파일이나 파일의 패턴에만 적용 받습니다. |
다음은 컨테이너 지시어 예입니다.
SomeDirective1 과 SomeDirective2 는 www/home/data 와 www/home/data 의 하위 디렉토리에만 적용되고, SomeDirective3 지시어는 Download/*.htm 파일에만 해당됩니다.
SomeDirective4 는 파일확장자 .gif, .bmp, .jpg 만 적용된다는 뜻입니다.
조건 컨테이너
조건 컨테이너는 그 조건이 만족되었을때만 처리되는 지시어입니다.
설 명 | |
---|---|
IfDefine | 이 컨테이너는 파라미터로 받은 조건이 참일때만 처리됩니다. MyModule 이 아파치가 실행될때 -DMyModule 와 같이 정의할 수 있고, 거짓 파라미터 지시어 형식도 지원합니다. |
IfModule | 이 지시어는 파라미터로 받은 모듈이 서버에 존재할 때만 처리됩니다. |
다음은 IfModule 예입니다.
아파치 접근제어
지시어는 제어할 폴더에 .htaccess 파일을 만들어 ip 주소, 환경변수, 도메인 네임 등을 제어할 수 있습니다.
ip 주소의 일부분 또는 범위를 지정해서 사용할 수 있고, ip 주소의 첫번째, 두번째, 세번째 바이트만 지정할 수도 있습니다.
다음 예는 10.0 에 해당하는 모든 ip주소를 포함합니다.
다음은 ip 주소와 네트워크 마스크를 사용한 예입니다.
도메인 네임을 이용한 Allow/Deny
호스트나 부분적 도메인으로 접근을 제어할 수 있습니다.
환경변수를 이용한 Allow/Deny
존재 유무를 검사할 환경변수 이름앞에 "env= "를 붙여주면 접근을 제어할 수 있습니다. 브라우저의 종류나 버전에 따라 통제가 가능합니다.
모든 대상으로 접근을 허용하려면 Allow from all 이라고 하고, 모든 사용자 접근을 거부하려면 Deny from all 이라고 지정하면 됩니다.
Order Allow, Deny 와 같이 순서를 지정하면 해당 리소스에 대한 모든 접근을 거부하나 위 예는 mydomain.com 도메인을 제외한 모두의 접근을 허용한다는 뜻입니다.
Allow,Deny 의 순서가 Allow 지시어를 우선 평가하는데, Deny 지시어보다 Allow 지시어가 우선순위이기 때문에 Deny 가 만족하지 않고, Allow 규칙을 만족한다면 접근을 허용하게 됩니다.