Apache에서 물건을 처리 할 수있는 가능성은 일반적으로 두 가지입니다.
-
htaccess 파일을 사용하여 폴더를 하나씩 구성하십시오.
-
htaccess를 완전히 사임하고 모든 규칙을 httpd.conf에 넣습니다.
htaccess의 사용법은로드 시간 문제입니다. 로드 시간 측면에서 htaccess 사용량이 얼마나 비싼 지 알고 싶습니다. 테스트가 있습니까?
답변
Apache 프로젝트 의 권장 사항 은 다음과 같습니다.
일반적으로 주 서버 구성 파일에 액세스 할 수없는 경우 .htaccess 파일 만 사용해야합니다. … 일반적인 오해 는 사용자 인증 및 mod_rewrite 지시문이
.htaccess
파일에 들어가야한다는 것입니다 .
따라서 AllowOverride None
기본 httpd.conf (및 / 또는 하위 섹션 Include
)에 다른 지시문을 모두 설정 하십시오.
Apache가 구성 되어 AllowOverride None
있지 않은 경우 .htaccess
파일 사용 여부에 관계없이 성능이 약간 저하 됩니다.
이는 모든 요청 아파치 .htaccess
에 대해 요청 된 자원으로 이어지는 모든 (하위) 디렉토리에 잠재적 파일 이 있는지 확인해야하기 때문입니다 . 예를 들어 / www / htdocs / example 디렉토리에서 파일을 요청하면 아파치는 다음 파일을 찾아야합니다.
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
따라서 해당 디렉토리에서 각 파일 액세스에 대해 해당 파일이없는 경우에도 4 개의 추가 파일 시스템 액세스가 있습니다. (AllowOveride가 /로 설정된 경우)
( man 2 stat
) 자체에 사용되는 시스템 호출 은 그다지 비싸지 않으며 일반적으로 실제 디스크를 폴링하여 실제 IO 요구 사항을 제한하는 대신 파일 시스템 캐시가 사용되지만 이 기사가 주장하는 것처럼 여전히 추가 할 수 있습니다 .
하나 이상의 실제 .htaccess
파일이 실제로 존재하는 경우, 아파치는 여전히 파일을 open
읽고 읽고 ( 다른 IO 읽기 작업 및 일반적으로 파일 시스템 속성 을 업데이트하기 위한 IO 쓰기 작업을 트리거 atime
) 파일을 읽고 구문 분석 을 수행하기 전에 파일 을 구문 분석 해야합니다.
지시문이 main에있을 때와 달리 httpd.conf
시작시 한 번만 구문 분석하기 위해 아파치가 .htaccess
필요하면 각 파일은 각 요청마다 다시 해석되어야합니다.
IO 작업 외에도 .htaccess 파일을 구문 분석하는 데 드는 비용은 복잡도에 따라 다릅니다.
이를 위해서는 신중한 벤치마킹이 필요합니다.
답변
비용은 서버의 성능, 특히 스토리지 I / O 서브 시스템의 성능 및 캐싱 관련 여부에 따라 다릅니다.
이를 테스트하는 방법은 .htacess로 시스템을 구성 하고 웹 서버와 동일한 방식으로 로드 테스트 하는 것입니다. 그런 다음 .htaccess없이 시스템을 구성하고 동일한 테스트를 실행하십시오.
비교의 결과를 대조 하여 구성된 시스템.
답변
귀하의 질문에 대한 하나의 정답이 있다고 생각하지 않습니다. htaccess로드 시간에 영향을 줄 수있는 많은 변수가 있습니다 :
- 사이트 폴더 구조 : 페이지를 열 때마다 각 폴더의 모든 .htaccess가로드됩니다.
- htaccess 파일의 길이는 200 줄입니까 3500 줄입니까? 큰 차이가 있습니다.
- .htaccess 구성 : 다시 쓰기 및 리디렉션 규칙은 다른 규칙보다 무거울 수 있으며 유일한 규칙은 아닙니다.
- 클라이언트 측의 네트워크 연결은로드 시간에 영향을 줄 수 있습니다. IMO, 여러 곳에서 시도해 볼 수 있으며 평균 시간은 참조와 같습니다.
- ab-Apache HTTP 서버 벤치마킹 도구 가 도움이 될 수 있습니다
더 많은 정보:
답변
.htaccess를 사용하거나 사용하지 않고 테스트했으며 속도와 오버 헤드의 차이를 전혀 찾을 수 없었습니다. 16 개의 사이트 만 운영하고 초고속 서버이므로 밀리 초를 추적하는 것은 거의 불가능합니다. 수백 개의 사이트를 실행하는 서버에서 @Iain이 테스트하고 확인한 것처럼 오버 헤드가 눈에 may 수 있습니다.
나는 개인적으로 가상 호스트에 .conf 파일을 사용하여 모든 것을 수행하지만 .htaccess는 모든 것을 완벽하게 제어 할 수 있으며 깨끗하고 아파치의 메모리에 한 번로드됩니다. 내 워드 프레스 다시 쓰기 규칙조차도 .conf 파일에 있으므로 절대로 깨지지 않습니다.