>  기사  >  운영 및 유지보수  >  Nginx 위치 지시어 URI 일치 규칙은 무엇입니까?

Nginx 위치 지시어 URI 일치 규칙은 무엇입니까?

WBOY
WBOY앞으로
2023-05-14 23:58:191536검색

1. 소개

위치 지시문은 미리 정의된 URL 일치 규칙에 따라 사용자가 보낸 요청을 수신하고 일치 결과에 따라 불법 요청을 백엔드 서버로 전달합니다. 403, 404, 500 오류 처리 등을 직접 거부하고 반환합니다.

2. 위치 지시문 구문

location [=|~|~*|^~|@] /uri/ { … } 또는 location @name { … }

3. 위치 지시문은 두 가지 일치 모드로 나뉩니다.
1> 일반 문자열 일치: =로 시작하거나 선행 문자(~) 없이 시작하는 규칙

2> 일반 일치: ~ 또는 ~*로 시작하는 것은 일반 일치를 의미하고, ~*는 일반 일치를 의미합니다. 표현식은 대소문자를 구분하지 않습니다



4. 위치 URI 일치 규칙

nginx는 요청을 받으면 요청의 URI 부분을 가로채서 위치 지시문에 정의된 모든 URI 일치 패턴을 검색합니다. 서버 모듈에서는 서로 다른 URL 요청과 일치하도록 여러 위치 지침을 정의할 수 있으며, 서로 다른 위치 구성을 사용하는 여러 URI 일치 패턴을 일치시키는 것이 전반적인 일치 원칙은 일반 문자열 패턴을 먼저 일치시킨 다음 일반 패턴과 일치시키는 것입니다. uri 부분만 인식됩니다. 예를 들어 요청은 /test/abc/user.do?name=xxxx

요청이 온 후 이 요청과 일치하는 nginx의 프로세스는 다음과 같습니다.

1> 먼저 다음과 같이 = 정확한 일치로 시작하는 항목이 있는지 확인합니다. location = /test/abc/user.do { … }

2> 다음 두 위치에서는 후자를 일치시킵니다
* location /test/ { … }

* location /test/abc { … }



3> 현재 매칭 결과를 계속해서 일반 매칭 패턴으로 검색합니다

4> 모든 정규 매칭 패턴 위치에서 첫 번째 매칭 항목이 발견된 후 이 항목이 최종 매칭 결과로 사용됩니다
그래서 일반 매칭 항목 매칭 규칙이 영향을 받습니다. 하지만 일반적인 일치 패턴은 그렇지 않습니다


5> 정규 일치 항목이 없으면 3의 캐시된 결과가 최종 일치 결과가 됩니다.
6> 일치 항목이 없으면 404가 반환됩니다


5. 완전 일치와 퍼지 일치의 차이

location =/ { … } 위치 / { … }의 차이: * 전자는 완전 일치이며 모든 /xxx 또는 /xxx/xxxx에만 응답합니다. 유형 요청은 접두사 형태로 일치하지 않습니다. * 후자는 요청에 / 접두사가 붙는 한 일치합니다. 예: /abc, /test/abc, /test/abc/aaaa


6. 정규 및 비정규 일치

1> 위치 ~ /test/.+.jsp$ { … }: 정규 일치 , 지원되는 표준 정규식 구문.
2> 위치 ^~ / { … }: ^~는 일반 매칭 패턴을 끄는 것을 의미합니다. 이 일반 매칭 패턴이 검색되면 일반 매칭 패턴이 더 이상 검색되지 않습니다.

아아아아

위 내용은 Nginx 위치 지시어 URI 일치 규칙은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제