- https://docs.nginx.com/nginx/admin-guide/web-server/web-server/#nginx-location-priority
- https://serverfault.com/questions/674425/what-does-location-mean-in-an-nginx-location-block
Configuring NGINX and NGINX Plus as a Web Server | NGINX Plus
Configuring NGINX and NGINX Plus as a Web Server Configure NGINX and NGINX Plus as a web server, with support for virtual server multi-tenancy, URI and response rewriting, variables, and error handling. This article explains how to configure NGINX Open Sou
docs.nginx.com
location directive에 대한 modifier 지정 방법은 크게 4가지가 존재한다.
- = : exact matching. location과 URI가 일치하면 즉시 반환
- ^~ : prefix string. ^~ modifier 붙은 prefix string이 longest matching prefix string이면 바로 반환
- ~ , ~* : location을 regex로 처리. ~ 는 대소문자를 구분하고, ~*은 대소문자 구분 안함
- no modifier : prefix string 매칭 시도
사용자가 입력한 URI을 검사하는 순서는 다음과 같다.
- prefix string을 검사하며 longest string을 찾는다.
- = modifier이 지정된 문자열과 매칭되면 탐색을 중지하고 즉시 해당 경로로 연결한다.
ex) location = /foo/bar : 사용자 URI = /foo/bar이면 바로 연결 - prefix string을 모두 순회하여 얻은 longest matching prefix string에 ^~ modifier가 지정되어 있으면 regex을 검사하지 않고 바로 연결한다.
ex) location ^~ /foo/bar : 사용자 URI = /foo/bar/taz 일때 longest matching된다면 regex 검사 없이 바로 연결 - 위 상황에 해당하지 않으면 longest matching prefix string을 임시로 저장한다.
- = modifier이 지정된 문자열과 매칭되면 탐색을 중지하고 즉시 해당 경로로 연결한다.
- regex을 검사한다. regex가 매칭되면 그 이상 평가하지 않고 바로 연결한다.
- 아무 regex도 매칭되지 않으면 이전에 저장해 둔 longest matching prefix string 경로로 연결한다.
'잡다' 카테고리의 다른 글
[라즈베리파이] 브라우저 화면 깨지는 현상 수정 (0) | 2024.07.30 |
---|---|
[vscode] .md 파일 깃허브 테마로 사용하기 (0) | 2023.08.14 |
[python] f-string(Literal String)과 string concatenation의 비교 (0) | 2023.03.13 |
Intellij / vscode 단축키 (0) | 2022.09.02 |
[오늘의 삽질] ec2 재시작 후 ssh 접근 안되는 문제 (0) | 2022.05.19 |