문제

mod-rewrite가 성취하는 긍정적 인 일이 많이 있다는 것을 알고 있습니다.그러나 부정적인 것이 있습니까?분명히 잘못된 규칙을 작성하면 문제가 생길 것입니다.그러나 대량 사이트가 있고 지속적으로 모드 재 작성을 사용한다면 성능에 상당한 영향을 미칠까요?Google에서 몇 가지 벤치 마크를 빠르게 검색했지만 많이 찾지 못했습니다.

도움이 되었습니까?

해결책

저는 중대한 성능 문제없이 매월 수백만 건의 조회수를 기록하는 사이트에서 mod_rewrite를 사용했습니다.규칙에 따라 어떤 재 작성이 먼저 적용되는지 알아야합니다.

mod_rewrite를 사용하는 것이 현재 언어로 URL을 구문 분석하는 것보다 빠를 가능성이 높습니다.

성능이 정말 걱정된다면 .htaccess 파일을 사용하지 마세요. 속도가 느립니다.시작시 한 번만 읽는 Apache 구성에 모든 재 작성 규칙을 넣으십시오..htaccess 파일은 모든 요청에서 상위 폴더에있는 모든 .htaccess 파일과 함께 다시 구문 분석됩니다.

다른 팁

위에서 Ryan이 말한 것을 반영하기 위해 .htaccess의 규칙은 구성 파일에 규칙이있는 것과 비교하여 바쁜 사이트에서로드 시간을 실제로 손상시킬 수 있습니다. 우리는 처음에 이것을 시도했지만 (월 6 천만 페이지 이하) 서버가 흡연을 시작할 때까지 오래 지속되지 않았습니다. :)

구성에 규칙이있는 명백한 단점은 규칙을 수정할 때마다 구성을 다시로드해야한다는 것입니다.

마지막 플래그 ( "L")는 규칙 실행 속도를 높이는 데 유용합니다. 한 번 더 자주 액세스하는 규칙이 맨 위에 있고 먼저 평가되면 긴 규칙 세트를 가지고 있다면 유지 관리가 훨씬 더 까다로울 수 있습니다. 어느 날 아침 규칙 목록의 중간에 편집 할 때 매우 실망스러운 두 시간을 낭비했고 그 이상을 트랩하는 맨 위에있는 예정된!

관련 벤치 마크도 찾기가 어려웠고 결국 자체 내부 테스트를 진행했습니다. 규칙을 정리하고 적절하게 정렬 한 후 Apache conf에 넣었을 때 성능에 부정적인 영향을 미치지는 않았습니다.

아파치의 성능이 걱정된다면 다시 쓰기 규칙이 많을 때 고려해야 할 한 가지는 "건너 뛰기"플래그를 사용하는 것입니다.규칙에서 일치를 건너 뛰는 방법입니다.따라서 매칭에 소요되는 모든 오버 헤드가 절약됩니다.

주의하세요. 저는 "건너 뛰기"플래그를 많이 사용하는 프로젝트를 진행 중이었고, 파일에 기록 된 순서에 따라 다르기 때문에 유지 관리가 힘들었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top