Nginx 입문 (2) Nginx echo 모듈 사용

4549 단어
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 []
  • 비동기 와 동기 화의 차 이 는:
  • 비동기 적 으로 요청 하기
  • 현재 요청 이 끝 날 때 까지 기 다 려 야 아래로 실 행 됩 니 다
  • 모든 경로 에서 최대 소모 시간 은 2s 이기 때문에 아래 의 전체 시간 은 2s 입 니 다.
    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 설정 역방향 프 록 시 서버 를 소개 합 니 다.

    좋은 웹페이지 즐겨찾기