nginx 에서 location 설정 의 우선 순위
6327 단어 기업 부분
location 표현 식 형식
location 우선 순위 설명
nginx 의 location 과 설정 에서 location 의 순 서 는 큰 관계 가 없습니다.location 표현 식 의 형식 과 관계 가 있 습 니 다.같은 형식의 표현 식 입 니 다. 문자열 이 길 면 우선 일치 합 니 다.다음은 우선 순위 에 따라 설명 한다.
location 우선 순위 예제
location = / {
# /
[ configuration A ]
}
location / {
# / 。
# , 。
# , 。
[ configuration B ]
}
location /documents/ {
# /documents/ 。
# , 。
# , 。
[ configuration C ]
}
location ^~ /images/ {
# /images/ , , 。
# , location,
[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ {
# gif jpg jpeg 。
# /images/ , Configuration D
[ configuration E ]
}
요청 일치 예시
/ -> configuration A
/index.html -> configuration B
/documents/index.html -> configuration C
/images/1.gif -> configuration D
/documents/1.jpg -> configuration E
이상 의 일치 성 은 설정 파일 에서 정 의 된 순서 와 무관 합 니 다.
location 정규 쓰기
location = / {
# / ,
[ configuration A ]
}
location / {
# / ,
#
[ configuration B ]
}
location /documents/ {
# /documents/ , ,
# ,
[ configuration C ]
}
location ~ /documents/Abc {
# /documents/ , ,
# ,
[ configuration CC ]
}
location ^~ /images/ {
# /images/ , , , 。
[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ {
# gif,jpg jpeg
# , /images/ config D , ^~
[ configuration E ]
}
location /images/ {
# /images/, , ^~
[ configuration F ]
}
location /images/abc {
# /images/abc, , ^~
# F G
[ configuration G ]
}
location ~ /images/abc/ {
# config D : config G , , ,
[ configuration H ]
}
= 첫 번 째 는 정확하게 일치 합 니 다. 예 를 들 어 A 에서 루트 디 렉 터 리 의 끝 에 만 일치 하 는 요청 은 뒤에 문자열 을 가 져 갈 수 없습니다. ^ ~시작 은 uri 가 정규 문자열 로 시작 하 는 것 이 아니 라 정규 문자열 로 시작 하 는 것 을 나타 낸다.시작 은 대소 문 자 를 구분 하 는 정규 일치 임 을 나타 낸다. ~ *대소 문 자 를 구분 하지 않 는 정규 일치 로 시작 합 니 다. /일반적인 일치, 다른 일치 가 없 으 면 모든 요청 이 일치 합 니 다.
순서 가 우선 순위 와 같 지 않 음: (location =) > (location 전체 경로) > (location ^ ~ 경로) > (location ~ / ~ * 정규 순서) > (location 부분 시작 경로) > (/)
위의 location 쓰기 에 따라 다음 과 같은 일치 하 는 예제 가 성립 됩 니 다.
/ - > config A 가 정확하게 일치 합 니 다. / index. html 도 일치 하지 않 습 니 다.
/ downloads / download. html - > config B 가 B 와 일치 한 후 아래 에 일치 하지 않 습 니 다. B 를 사용 합 니 다.
/ images / 1. gif - > configuration D 는 F 에 일치 하고, 아래로 D 에 일치 하 며, 아래로 멈 춥 니 다.
/ images / abc / def - > config D 는 G 와 가장 길 게 일치 합 니 다. D 와 아래로 일치 합 니 다. 아래 를 멈 추 면 / images / 로 시작 하 는 모든 것 이 최종 적 으로 D 와 일치 하고 멈 추 는 것 을 볼 수 있 습 니 다. FG 는 여기에 쓰 여 있 는 것 은 아무런 의미 가 없습니다. H 는 영원히 돌아 가지 않 습 니 다. 여 기 는 일치 하 는 순 서 를 설명 하기 위해 서 입 니 다.
/ documents / document. html - > config C 가 C 에 일치 합 니 다. 아래 에는 일치 하지 않 습 니 다. C 를 사용 합 니 다.
/ documents / 1. jpg - > configuration E 가 C 에 일치 하고 아래 정규 가 E 에 일치 합 니 다.
/ documents / Abc. jpg - > config CC 는 C 까지 최 장 일치 하 며, 아래 정규 순 서 는 CC 까지 일치 하 며, E 까지 내 려 가지 않 습 니 다.
실제 사용 제안
# , , , 。
# ,
#
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/
}