Nginx include 명령 어 테스트

필요:
타 오 바 오의 Tengine 서버 는 1.0.1 버 전에 서 Include 명령 을 강화 했다.
 
Syntax: include  file | *
Default: no
 
이 명령 을 사용 하면 포함 하고 싶 은 프로필 을 포함 할 수 있 습 니 다. 프로필 include 여러 파일 을 설정 할 때 알파벳 이나 숫자 순서대로 포함 할 수 있 습 니 다.
include 명령 이 여러 파일 을 알파벳 이나 숫자 순서대로 포함 하 는 지 기능 / 블랙 박스 테스트 를 통 해 확인 하 는 것 이 해결 해 야 할 문제 입 니 다.
해결 방안: (여기 서 제 개인 적 으로 정리 한 해결 방법 3 가 지 를 열거 합 니 다)
1. 비교적 멍청 한 방법: Tengine 소스 코드 의 main 함수 에 검사 문 구 를 추가 하고 반환 값 의 상황 에 따라 include 명령 이 여러 파일 에 대한 포함 순 서 를 판단 합 니 다.
2. 귀 찮 은 방법: Tengine 에서 컴 파일 할 때 제3자 모듈: ECHO 모듈 을 추가 합 니 다.ECHO 모듈 의 출력 명령 을 각각 다른 파일 에 기록 한 다음 설정 파일 의 해당 location 에 inlude 명령 을 통 해 파일 을 포함 합 니 다.
Tengine 에 대한 요청 접근 을 통 해 응답 헤더 에 있 는 ECHO 모듈 이 출력 한 정보의 순 서 를 검증 하여 include 명령 이 여러 파일 에 포 함 된 순서 가 정확 한 지 판단 합 니 다.
3. 비교적 쉬 운 방법 (이것 도 내 가 사용 하 는 테스트 방법):
먼저 Tengine (Nginx) 의 location 매 칭 규칙 을 알 아야 합 니 다. 이 는 이번 location 정규 와 일치 하 는 규칙 만 소개 합 니 다. 자세 한 내용 은 Nginx 홈 페이지 wiki 를 참조 하 십시오.
일치 규칙 은 정규 location 설정 파일 의 물리 적 순서 (편집 순서) 에 따라 일치 하 며, 정규 location 에 일치 하면 뒤의 것 을 고려 하지 않 습 니 다.
따라서 우 리 는 Nginx location 정규 에 맞 는 이 특징 을 이용 하여 테스트 할 수 있다.
 
사례 1:
프로필 에 있 는 location 설정 이 다음 과 같 을 때:
 
        location  ~ /er.* {
            error_page 404 /404_1.html;
        }

        location ~ /err.* {
            error_page 404 /404_2.html;
        }

 
 url 접근:http://serverip:port/error/pageNotExit;
 귀환: 4041. html 페이지;
 
 url 접근:http://serverip:port/eroor/pageNotExit;
 귀환: 4041. html 페이지;
 
사례 2:
프로필 에 있 는 location 설정 이 다음 과 같 을 때:
 
        location ~ /err.* {
            error_page 404 /404_2.html;
        }

        location  ~ /er.* {
            error_page 404 /404_1.html;
        }

 url 접근:http://serverip:port/error/pageNotExit;
 
 귀환: 4042. html 페이지;
 
 url 접근:http://serverip:port/eroor/pageNotExit;
 귀환: 4041. html 페이지;
 
따라서, 우 리 는 이 두 location 설정 을 다른 파일 과 같이 쓰기 만 하면 됩 니 다.
 
파일 이름 1. conf 쓰기
location ~ /er.* {
error_page 404 /404_2.html;
}
 
 
파일 이름 2. conf 쓰기
location ~ /err.* {
error_page 404 /404_2.html;
}
 
그리고 Tengine (Nginx) 테스트 프로필 에 include 명령 을 설정 합 니 다.
server {
        listen       8099;
        server_name  localhost;

        include location/*.conf;
}
 
그러면 특정한 url 접근 을 설계 하고 결 과 를 검사 하면 include 명령 이 여러 파일 에 포 함 된 순 서 를 테스트 할 수 있 습 니 다.
 
ok,  Nginx include 명령 의 테스트 소개 가 끝 났 습 니 다. 벽돌 을 찍 는 것 을 환영 합 니 다.리 트 윗: 100 continue. iteye. com.감사합니다.

좋은 웹페이지 즐겨찾기