ngx_Lua 모듈 의 재 설정
Lua 모듈 을 통 해서 도 같은 기능 을 할 수 있 습 니 다. Lua 모듈 은 관련 API 를 제공 하여 방향 을 바 꾸 는 기능 을 합 니 다. 주로 다음 과 같 습 니 다.
>ngx.exec
문법: ngx. exec (uri, args?)
주로 내부 의 방향 을 바 꾸 고 아래 의 rewrite 명령 과 같다.
rewrite regrex replacement last;
예:
ngx.exec('/some-location');
ngx.exec('/some-location', 'a=3&b=5&c=6');
ngx.exec('/some-location?a=3&b=5', 'c=6');
주의:
1. 주어진 uri 가 이름 을 딴 location 이 라면 args 는 자동 으로 무 시 됩 니 다. 다음 과 같 습 니 다.
location /foo {
content_by_lua ' ngx.exec("@bar"); ';
}
location @bar {
...
}
2. args 인 자 는 string 형식 으로 제시 할 수도 있 고 lua table 형식 으로 제시 할 수도 있 습 니 다. 다음 과 같 습 니 다.
ngx.exec("/foo","a=3&b=hello%20world")
ngx.exec("/foo",{ a= 3, b="hello world"})
3. 이 방법 은 주동 적 으로 돌아 오지 않 기 때문에 이 방법 을 호출 할 때 return 을 표시 하 는 것 이 좋 습 니 다. 다음 과 같 습 니 다.
return ngx.exec(...)
4. 이 방법 은 ngx. redirect 방법 과 달리 추가 적 인 네트워크 트 래 픽 이 발생 하지 않 습 니 다.
>ngx.redirect
문법: ngx. redirect (uri, status?)
이 방법 은 클 라 이언 트 에 게 301 / 302 방향 을 되 돌려 줍 니 다. 구체 적 으로 301 인지 302 인지 설정 한 status 값 에 달 려 있 습 니 다. status 값 을 지정 하지 않 으 면 기본 값 은 302
ngx.HTTP_MOVED_TEMPORARILY
로 되 돌아 갑 니 다. 그 등가 는 아래 의 rewrite 명령 입 니 다.rewrite ^ /foo? permanent;# nginx config
301 로 돌아 가면 다음 rewrite 명령 과 같 습 니 다.
rewrite ^ /foo? redirect;# nginx config
ngx. location. capture * 와 의 차이 점 에 주의해 야 합 니 다.
ngx. location. capture * 는 주로 하위 요청 방식 으로 location 의 재 정립 을 실현 하 는데 위의 두 가지 방법 과 완전히 다르다.
Subrequests are completely different from HTTP 301/302 redirection (viangx.redirect) and internal redirection (viangx.exec).
> ngx.req.set_uri
문법: ngx. req. seturi(uri, jump?)
인자 uri 를 통 해 현재 요청 한 uri 를 다시 쓰기;인자 jmp, locations 의 재 일치 여 부 를 표시 합 니 다.jmp 가 true 일 때 ngx. req. set 를 호출 합 니 다.uri 후, nginx 는 수 정 된 uri 에 따라 새로운 locations 와 다시 일치 합 니 다.jmp 가 false 라면 현재 요청 한 URI 를 수정 한 것 이 아니 라 locations 의 재 매 칭 을 하지 않 습 니 다.jump 의 기본 값 은 false 입 니 다.
jump 는 true 로 rewrite... last 와 같 습 니 다.
jump 는 false 로 rewrite... break 와 같 습 니 다.
예 를 들 면:
ngx.req.set_uri("/foo", true)
등가
rewrite ^ /foo last;
rewrite ^ /foo break;
등가
ngx.req.set_uri("/foo", false) 혹은 ngx. req. seturi("/foo")
(전문 완료)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.