nginx stream 모듈 초기 분석

머리말
nginx 는 1.9.0 부터 stream 모듈 을 새로 추가 하여 4 층 프로 토 콜 의 퍼 가기, 대리 또는 부하 균형 등 을 실현 합 니 다.이것 은 완전히 HAproxy 점유 율 을 빼 앗 는 리듬 입 니 다. nginx 가 7 층 부하 균형 과 웹 서비스 에서 의 성공 을 감안 하여 nginx 와 좋 은 프레임 워 크 를 가지 고 stream 모듈 의 전망 이 밝 습 니 다.
stream 모듈 컴 파일
stream 모듈 은 기본적으로 nginx 에 컴 파일 되 지 않 았 습 니 다. nginx 를 컴 파일 할 때. / configure – with - stream 을 컴 파일 하면 됩 니 다.
홈 페이지:http://nginx.org/en/docs/stream/ngx_stream_core_module.html
사용법
stream 모듈 의 용법 은 http 모듈 과 차이 가 많 지 않 고 관건 적 인 것 은 문법 이 거의 일치 하 는 것 이다.http 모듈 설정 문법 에 익숙 한 시작 이 빠 릅 니 다. 다음은 tcp 부하 균형 과 udp (dns) 부하 균형 을 설정 한 예 입 니 다. server, upstream 블록 이 있 고 server, hash, listen, proxy 도 있 습 니 다.pass 등 명령, 가장 바깥쪽 stream 키 워드 를 보지 않 으 면 http 모듈 인 줄 알았어 요.
worker_processes auto;
error_log logs/error.stream.log info;
events {
    worker_connections  1024;
}
stream {
    upstream backend {
        hash $remote_addr consistent;
        server 127.0.0.1:12346 weight=5;
        server 127.0.0.1:12347            max_fails=3 fail_timeout=30s;
        server 127.0.0.1:12348            max_fails=3 fail_timeout=30s;
    }
    upstream dns {
       server 17.61.29.79:53;
       server 17.61.29.80:53;
       server 17.61.29.81:53;
       server 17.61.29.82:53;
    }
    server {
        listen 12345;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass backend;
    }
    server {
        listen 127.0.0.1:53 udp;
        proxy_responses 1;
        proxy_timeout 20s;
        proxy_pass dns;
    }
}

stream core 일부 변수
메모: 변수 지원 은 nginx 1.11.2 버 전부터 시 작 됩 니 다.
$binary_remote_addr
           
$bytes_received
           
$bytes_sent
         
$hostname
    
$msec
         
$nginx_version
nginx   
$pid
worker   
$protocol
    (UDP or TCP)
$remote_addr
   ip
$remote_port
     
$server_addr
        ip,             。        , listen                     bind$server_port
          
$session_time1.11.4$status1.11.4  ),         :
200
  
400
           
403
    
500
       
502503$time_iso8601
ISO 8601    
$time_local
          

stream 모듈
현재 홈 페이지 에 열 거 된 제3자 모듈 은 http 모듈 의 미 러 입 니 다. 예 를 들 어 access 모듈 은 제어 ip 과 ip 세그먼트 에 접근 하고 map 모듈 은 매 핑, geo 모듈 은 지리 적 위치 매 핑 을 실현 합 니 다.이 모듈 을 사용 할 때 는 어떤 버 전이 지원 되 는 지 봐 야 합 니 다. 예 를 들 어 log 모듈 은 nginx - 1.11.4 에서 만 지원 합 니 다.
ngx_stream_core_module
ngx_stream_access_module
ngx_stream_geo_module
ngx_stream_geoip_module
ngx_stream_js_module
ngx_stream_limit_conn_module
ngx_stream_log_module
ngx_stream_map_module
ngx_stream_proxy_module
ngx_stream_realip_module
ngx_stream_return_module
ngx_stream_split_clients_module
ngx_stream_ssl_module
ngx_stream_ssl_preread_module
ngx_stream_upstream_module
ngx_stream_upstream_hc_module

좋은 웹페이지 즐겨찾기