nginx post body 값 가 져 오기
2537 단어 nginx
nginx 에서 $request 를 이용 하고 싶 습 니 다.body 명령 은 post 가 요청 한 body 인 자 를 가 져 오고 로 그 를 떨 어 뜨 립 니 다. 그러나 이 변 수 는 비어 있 습 니 다. 홈 페이지 에서 $request 를 보십시오.body 의 설명 은 다음 과 같 습 니 다.
$request_body request body The variable’s value is made available in locations processed by the proxy_pass, fastcgi_pass, uwsgi_pass, and scgi_pass directives when the request body was read to a memory buffer. location 에서 만 proxy 를 사용 한 다 는 뜻 입 니 다.pass,fastcgi_pass,scgi_pass 명령 을 사용 할 때 이 변 수 는 값 이 있 습 니 다.
2. proxy 사용pass,fastcgi_pass, scgi_pass 등 명령 획득 $requestbody 값
해 봤 는데 proxy패스, 그 럴 수 있어 요.설정 은 다음 과 같 습 니 다:
curl 명령 으로 post 요청 시 뮬 레이 션
worker_processes 1; #nginx worker
error_log logs/error.log; #
events {
worker_connections 1024;
}
http {
log_format dm ' "$request_body" ';
upstream bk_servers_2 {
server 127.0.0.1:6699;
}
server {
listen 6699;
location /post/ {
proxy_pass http://bk_servers_2/api/log/letv/env;
access_log /home/shuhao/openresty-test/logs/post.log dm;
}
location /api/log/letv/env {
return 202;
}
}
}
로그 용 결과 출력:
curl -i -d "arg1=1&arg2=2" "http://127.0.0.1:6699/post/"
3. lua 로 $request 획득body 값
조건: openresty 나 nginx 를 사용 하여 lua 모듈 을 컴 파일 했 습 니 다.
방법:
server 중 lua 사용need_request_body on; 또는 location lua 코드 블록 에 ngx. req. read 를 사용 합 니 다.body()
주의:
1) lua 코드 블록 에 실행 문 이 있어 야 합 니 다. 그렇지 않 으 면 lua 가 실행 하지 않 으 면 request 를 가 져 올 수 없습니다.body;
2) return 200 을 사용 하지 마 십시오.명령 을 기다 리 면 return 명령 이 있 고 lua 코드 는 실행 되 지 않 습 니 다.
"arg1=1&arg2=2"
4. 사용자 정의 변수 저장 request body
방법:
1) server 블록 에 set $resp 사용body ""; 변수 설명 하기;
2) location 에서 사용 ngx.var.resp_body = ngx.req.get_body_data() or "-" 변수 할당
worker_processes 1; #nginx worker
error_log ~/openresty-test/logs/error.log debug; #
events {
worker_connections 1024;
}
http {
log_format dm '"$request_body"';
lua_need_request_body on;
server {
listen 6699;
location /post/ {
content_by_lua '
ngx.say("-------")
ngx.req.read_body()
';
access_log ~/openresty-test/logs/post.log dm;
#return 200;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.