Nginx 의 위치 일치 원칙
0. 흔히 볼 수 있 는 정규 표현 식 기호
기호.
속뜻
$
입력 문자열 의 끝 위치 와 일치 합 니 다.
( )
하위 표현 식 의 시작 과 끝 위 치 를 표시 합 니 다.
*
앞의 하위 표현 식 과 한 번 또는 여러 번 일치 합 니 다.
^
입력 문자열 의 시작 위치 와 일치 합 니 다.
\
다음 문 자 를 특수 문자 나 원 의 문자 로 표시 하거나 뒤로 참조 하거나 8 진 전의 문자 로 표시 합 니 다.
|
두 가지 선택 을 가리키다
.
줄 바 꿈 자 를 제외 한 모든 문자 와 일치 합 니 다.
?
앞의 하위 표현 식 과 0 번 또는 한 번 일치 하거나 탐욕 이 아 닌 한정 자 를 가 리 킵 니 다.
~
정규 일치, 대소 문자 구분
이상 의 특수 문 자 를 일치 시 키 려 면 앞 에 전의 문자
\
를 추가 하면 됩 니 다. * * 소괄호 ()
사이 에 일치 하 는 내용 은 뒤에서 $1
를 통 해 인용 할 수 있 습 니 다. $2
는 앞의 두 번 째 ()
의 내용 을 나타 내 고 정규 표현 식 은 나중에 $1
을 포함 할 수 있 습 니 다. $9
변수 에서 중복 사용 되 는 캡 처 * *1. 기본 문법
1. Nginx 위치 설정 문법
1. location [ = | ~ | ~* | ^~ ] uri { ... }
2. location @name { ... }
2. location 설정 은 두 가지 설정 방법 이 있 습 니 다.
1. + uri( / )
2.@ + name
3. 접두사 의 의미
패턴
속뜻
location = /uri
= 정확하게 일치 함 을 나타 내 며, 완전히 일치 해야만 유효 함
location ^~ /uri
^ ~ 처음 URL 경 로 를 접두사 로 일치 시 키 고 정규 전에.
location ~ pattern
첫머리 는 대소 문 자 를 구분 하 는 정규 일치 를 나타 낸다
location ~* pattern
대소 문 자 를 구분 하지 않 는 정규 일치
location /uri
수정자 가 없 으 면 접두사 가 일치 하지만 정규 가 일치 하면
location /
일반적인 일치, 다른 location 에 일치 하지 않 는 요청 은 switch 의 default 에 해당 합 니 다.
접두사 가 일치 할 때 Nginx 는 url 에 인 코딩 을 하지 않 기 때문에 요청 은
/static/20%/aa
이 고 규칙 ^~ /static/ /aa
에 일치 할 수 있 습 니 다. (빈 칸 주의)여러 location 설정 의 경우 일치 하 는 순 서 는 다음 과 같 습 니 다.
=
^~
/
통용 매 칭 4. location 기초 지식
2. location 실례
1. 기본 일치 인 스 턴 스
* * 보통 일치, 최 장 일치 규칙 에 따라 하나의 요청 이 두 개의 일반 규칙 에 일치 했다 고 가정 하면 길이 가 큰 것 을 선택 하 십시오 * *
예 를 들 면:
location /{
[matches]
}
location /test{
[matches]
}
* * 정확 한 일치 * *
location = /{
[matchtes]
}
location = /test{
[matches]
}
* * 정규 일치 * *
대소 문자 구분 일치
location ~ ^*.php${
[matches]
}
~ * 대소 문자 의 일치 구분 없 음
location ~* ^*.php${
[matches]
}
^ ~ 일반 문자 가 일치 합 니 다. 이 규칙 과 일치 하 기 를 요청 하면 다른 규칙 은 무시 하고 이 규칙 만 일치 합 니 다.
location ^~ /test{
[matches]
}
@ locationname 내부 리 디 렉 션 일치
location @locationname{
[matches]
}
일치 우선 순위: 우선 정확 한 일치 규칙 이 있 는 지 확인 하고 있 으 면 정확 한 일치 규칙 을 처리 합 니 다. 정확 한 일치 규칙 이 발견 되면 다른 일치 규칙 을 검색 하지 않 고 현재 일치 하 는 규칙 을 되 돌려 줍 니 다. 그 다음 에 일반 문자 가 일치 하 는 지 확인 하 십시오. 이 일치 요청 은 정규 또는 더 긴 일치 가 있 는 지 확인 해 야 합 니 다.정규 일치 또는 더 긴 일치 로 되 돌아 갑 니 다 ^ ~ 일치 하 는 것 은 세 번 째 단계 로 처 리 됩 니 다. 이 규칙 과 일치 하 기 를 요청 하면 다른 규칙 과 일치 하지 않 습 니 다. 이 규칙 을 되 돌려 주 는 것 은 마지막 으로 실 행 됩 니 다. 정규 일치 하 는 것 은 찾 으 면 다른 규칙 을 해석 하지 않 습 니 다. 이것 은 우선 순위 에 주의해 야 합 니 다.
2. 완전한 예
location = / {
# "/".
[ configuration A ]
}
location / {
# , "/"
#
[ configuration B ]
}
location ^~ /images/ {
# /images/ , location
[ configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ {
# gif, jpg, or jpeg .
# /images/ [Configuration C] .
[ configuration D ]
}
URI :
/ -> configuration A
/documents/document.html -> configuration B
/images/1.gif -> configuration C
/documents/1.jpg -> configuration D
@location
error_page 404 = @fetch;
location @fetch{
proxy_pass http://fetch;
}
3. 실제 사용 규칙
# , , :
# , , , 。
# ,
#
location = / {
proxy_pass http://tomcat:8080/index
}
# , nginx http
# , ,
location ^~ /static/ {
root /webroot/static/;
}
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
root /webroot/res/;
}
# ,
# ,
# , .php,.jsp
location / {
proxy_pass http://tomcat:8080/
}
4. 위치의 루트 경로 규칙
alias 가 지정 한 디 렉 터 리 는 정확 합 니 다. location 에 디 렉 터 리 를 지정 합 니 다.루트 는 디 렉 터 리 의 상위 디 렉 터 리 를 지정 하고 이 상위 디 렉 터 리 는 location 이 지정 한 이름 의 동명 디 렉 터 리 를 포함 해 야 합 니 다.
location /img/ {
alias /var/www/image/;
}
# , /img/ ,ningx /var/www/image/
# :
#1. alias , "/"。
#2. alias , 。
#3. alias location 。(root location )
location /img/ {
root /var/www/image;
}
# , /img/ ,nginx /var/www/image/img/
# root ,nginx root location
5. 참고 자료
https://segmentfault.com/a/1190000009651161
https://gist.github.com/luxixing/7262911
http://nginx.org/en/docs/http/ngx_http_core_module.html#location
https://segmentfault.com/a/1190000002797606
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.