nginx 에서 자주 사용 하 는 location rewrite proxypass
= 로 시작 하여 정확 한 매 칭 을 나타 낸다.루트 디 렉 터 리 의 끝 에 만 일치 하 는 요청 이 있 으 면 문자열 을 가 져 올 수 없습니다.^ ~ 로 시작 하면 uri 는 일반적인 문자열 로 시작 하고 일치 하면 계속 일치 하지 않 습 니 다.정규 일치 가 아니 라 ~ 로 시작 하여 대소 문 자 를 구분 하 는 정규 일치 임 을 나타 낸다.~ * 로 시작 하여 대소 문 자 를 구분 하지 않 는 정규 일치 / 로 시작 합 니 다. 일반적인 일치 입 니 다. 다른 일치 가 없 으 면 모든 요청 이 * * location xxx {} 에 일치 합 니 다. 그 중에서 xxx 와 괄호 사이 에 빈 칸 이 필요 할 때 가 많 습 니 다. 모두 추가 하 는 것 이 좋 습 니 다 *
일치 순서:
(location =) > (location 전체 경로) > (location ^ ~ 경로) > (location ~, ~ * 정규 순서) > (location 부분 시작 경로) > (/)
rewrite
rewrite 는 server {}, location {}, if {} 에 만 놓 을 수 있 고 도 메 인 이름 뒤의 파일 경로 에 만 작용 할 수 있 습 니 다.
실행 순서
rewrite regex replacement [flag];
flag
여 기 는 server 급 과 location 급 으로 나 뉘 는데 그 중에서 if 는 server 와 location 에 각각 server 급 과 location 급 에 대응 합 니 다.같은 등급 에서 순 서 를 집행 하고 책 을 읽 고 순 서 를 쓴다.last: 같은 레벨 의 rewrite 를 실행 하지 않 고 location 에 다시 일치 하도록 쓰 십시오. break: 같은 레벨 의 rewrite 를 실행 하지 않 고 계속 아래로 실행 합 니 다. location 에 다시 일치 하지 않 습 니 다.redirect: 302 임시 리 셋 을 되 돌려 줍 니 다. 주소 표시 줄 은 점프 후의 주 소 를 표시 합 니 다 permanent: 301 영구 리 셋 을 되 돌려 줍 니 다. 주소 표시 줄 은 점프 후의 주 소 를 표시 합 니 다. flag 를 쓰 지 않 을 때 같은 등급 으로 다시 순환 합 니 다.
if(condition)
표현 식 이 하나의 변수 일 때 값 이 비어 있 거나 0 으로 시작 하 는 문자열 이 false 로 변수 와 내용 을 직접 비교 할 때 = 또는! = 을 사용 합 니 다.정규 표현 식 일치 ~ * 대소 문자 구분 없 는 일치! ~대소 문자 구분 이 맞지 않 습 니 다. - f 와! -f. 파일 이 존재 하 는 지 여 부 를 판단 하 는 데 사용 합 니 다. - d 와! -d 디 렉 터 리 존재 여 부 를 판단 하 는 데 사용 - e 와! -e. 파일 이나 디 렉 터 리 가 존재 하 는 지 판단 하 는 데 사용 합 니 다. - x 와! -x. 파일 이 실 행 될 수 있 는 지 여 부 를 판단 하 는 데 사용 합 니 다.
기타
디 버 깅
default_type application/json;
locaiton return 200 '$uri xxx'
변량
set $a "1"
if ($a = "1") {
return 302
}
proxy_pass
proxy_pass http://127.0.0.1:8008/;
여 기 는 location 에 있 는 proxy 만 토론 합 니 다.pass; 1. location 사용 비정 규 직 일치
location /api {
# 1. proxy_pass http://127.0.0.1:8008/a;
# 2. proxy_pass http://127.0.0.1:8008;
}
location ~ /api/ {
proxy_pass http://127.0.0.1:8008;
}
3 、 만약 proxypass 뒤에 변수 가 있 습 니 다. 바로 가 는 주소 입 니 다. 12 가지 규칙 을 뛰 어 내 립 니 다.
예 를 들다
server {
listen 80;
rewrite /a(.*) /b$1;
rewrite /b(.*) /c$1 last;
rewrite /c(.*) /d$1 break;
location / {
if ($uri ~ /d/) {
rewrite /d/(.*) /api/$1 last;
}
return 200 '$uri';
}
location /api {
proxy_pass http://127.0.0.1:8000/test; # /, /api。
}
location ~ /t/(.*)/t {
proxy_pass http://127.0.0.1:8000/test1/$1;
#proxy_pass http://127.0.0.1:8000/test1; , , 3 。
}
}
http://127.0.0.1:8000/test/dd
http://127.0.0.1:8000/test1/test2
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.