Nginx 입문 (2) Nginx echo 모듈 사용
원래 두 번 째 글 에서 nginx 설정 역방향 프 록 시 서버 를 소개 하려 고 했 습 니 다.그러나 echo 모듈 과 같은 신 기 를 발견 하면 나중에 nginx 설정 프 록 시 서버 를 배 우 는 데 큰 도움 이 되 므 로 echo 모듈 을 배 워 보 세 요.echo 모듈 은 nginx 프로그램 에서 echo 출력 문 자 를 확장 하 는 기능 으로 디 버 깅 에 편리 하 며 nginx 를 배 우 는 필수 신기 라 고 할 수 있 습 니 다.항목 주소:https://github.com/openresty/echo-nginx-module
설치 하 다.
본인 도 echo 모듈 을 설치 할 때 각종 구 덩이 를 만 났 습 니 다.만약 당신 의 컴퓨터 가 Mac 이 아니라면, Nginx 동적 모듈 설치 와 echo 모듈 설치 지침 을 참고 할 수 있 습 니 다.맥 을 썼 다 면그럼 brew 로 명령 하나 로 설치 하 세 요.명령 을 써 도 됩 니 다.
brew install nginx-full --with-echo-module
구체 적 으로 이 링크 를 참고 할 수 있 습 니 다 (ttps://github.com/Homebrew/homebrew-nginx) 만약 당신 이 이전에 Nginx 를 설치 한 적 이 있다 면, brew 로 설치 하면 충돌 이 발생 할 수 있 으 며, 아래 명령 으로 충돌 을 해결 할 수 있 습 니 다.
brew unlink nginx
쓰다
아래 링크 를 통 해 이 프로필 을 다운로드 할 수 있 습 니 다.뒤에 echo 모듈 의 테스트 용례 는 이 파일 에 따라 설명 합 니 다.만약 당신 이 mac 컴퓨터 이 고 이전 단계 에 따라 nginx 를 설치 했다 면 다운로드 한 프로필 을
/usr/local/etc/nginx/servers
디 렉 터 리 아래 에 놓 으 십시오.로 컬 컴퓨터 에 host 설정127.0.0.1 testecho.baidu.com
로그
nginx 로 그 를 어떻게 보 는 지 먼저 말씀 드 리 겠 습 니 다.컴퓨터 에 nginx 를 설치 한 후 nginx 로그 디 렉 터 리 파일 을 만 들 지 않 았 습 니 다.설정 파일 에 따라 수 동 으로 만들어 야 합 니 다.나 는
/usr/local/etc/nginx/
디 렉 터 리 에 로그 디 렉 터 리 logs/nginx
를 만 들 고 모든 접근 testecho.qidian.com
로그 와 오류 로 그 는 이 디 렉 터 리 에 자동 으로 인쇄 된다.다음은 자주 사용 하 는 명령 몇 가 지 를 간단하게 소개 하 겠 습 니 다.
echo - 출력 문자
echo [options]
... $remote_addr
location /test {
echo $remote_addr;
echo $args;
}
curl testecho.baidu.com:8081/test?123 출력 결 과 는?
127.0.0.1
123
이렇게 하면 첫 번 째 글 에서 소개 한 전역 변수의 값 을 쉽게 볼 수 있 습 니 다. 매우 편리 하지 않 습 니까?
echo_before_body, echo_after_body - 페이지 앞, 뒤 삽입 내용
echo_before_body [options] [argument]...
# 、
location = /api/proxy_before_after {
echo_before_body hello before;
proxy_pass http://127.0.0.1:8081/test;
echo_after_body world after;
}
curl testecho.baidu.com:8081/api/proxy_before_after?123 출력 결 과 는:
hello before
127.0.0.1
123
world after
echo_sleep - 대기 요청
echo_sleep
이 방법 은 지 정 된 초 를 기다 릴 수 있 습 니 다.이 방법 은 전체 nginx 프로 세 스 를 막 지 않 습 니 다.curl tescho. baidu. com: 8081 / api / sleep 출력 결과 1
2
echo_location_async, echo_location - 경로 지정 요청
echo_location_async []
location /main1 {
echo_reset_timer;
echo_location_async /sub1;
echo_location_async /sub2;
echo "took $echo_timer_elapsed sec for total.";
}
location /sub1 {
echo_sleep 2;
echo hello;
}
location /sub2 {
echo_sleep 1;
echo world;
}
curl tescho. baidu. com: 8081 / main 1 출력 결 과 는?
hello
world
took 0.000 sec for total.
0 s 를 출력 하 는 이 유 는 main 1 이 두 개의 키 요청 sub 1 과 sub 2 를 기다 리 지 않 기 때 문 입 니 다.그래서 아주 빨리 끝났어 요.위의 main 1 중의 echo 를location_async echo 로 변경location。 curl tescho. baidu. com: 8081 / main 2 출력 결 과 는?
hello
world
took 3.002 sec for total.
두 번 째 매개 변 수 를 통 해 하위 요청 을 전달 할 수 있 습 니 다
querystring: echo_location_async /sub 'foo=Foo&bar=Bar';
echo_foreach_split - 분리 순환echo_foreach_split
이 방법 은 요청 한 매개 변 수 를 구분자 에 따라 분리 할 수 있 습 니 다. location /loop {
echo_foreach_split ',' $arg_list;
echo "item: $echo_it";
echo_end;
}
curl tescho. baidu. com: 8081 / loop? list = cat, dog, mouse 출력 결 과 는?
item: cat
item: dog
item: mouse
if 문장의 디 버 깅
arg_val
를 통 해 요청 파 라 메 터 를 얻 을 수 있 고 if 문 구 를 디 버 깅 하기에 편리 합 니 다. location ^~ /if {
set $res miss;
if ($arg_val ~* '^a') {
set $res hit;
echo $res;
}
echo $res;
}
curl tescho. baidu. com: 8081 / if? val = abc 출력 방문
hit
curl tescho. baidu. com 방문: 8081 / if? val = bcd
miss
읽 어 주 셔 서 감사합니다. 다음 장 에 서 는 nginx 설정 역방향 프 록 시 서버 를 소개 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.