nginx 1.9 + TCP 에이전트 (포트 리 트 윗)

문제 에서 보 듯 이 nginx 는 1.9 버 전 이후 포트 리 트 윗 의 역할 을 할 수 있 습 니 다. 즉, 이 서버 의 지정 한 포트 를 방문 하면 nginx 는 포트 리 트 윗 의 역할 을 하여 트 래 픽 을 다른 서버 로 안내 하 는 동시에 대상 서버 의 데 이 터 를 가 져 와 요청 자 에 게 되 돌려 줄 수 있 습 니 다.nginx 의 TCP 프 록 시 기능 은 nginx 의 역방향 프 록 시 와 달리 이 포트 를 요청 하 는 모든 데 이 터 는 대상 서버 로 전송 되 고 역방향 프 록 시 에서 어떤 요청 이 어떤 서버 에 전달 되 는 지 세분 화 할 수 있 습 니 다.또 다른 것 은 nginx 가 TCP 대 리 를 하 는 것 은 WEB 의 URL 요청 에 만 국한 되 는 것 이 아니 라 memcached, MySQL 등 점 에서 점 까지 의 요청 도 전달 할 수 있다 는 것 이다.
실현 절 차 는 다음 과 같다.
(1) nginx 는 컴 파일 할 때 "– with - stream" 을 추가 합 니 다.
./configure –prefix=/usr/local/nginx –user=www –group=www –with-http_stub_status_module –with-pcre=/usr/local/src/pcre-8.38 –add-module=/usr/local/src/ngx_cache_purge-2.3 –with-http_gzip_static_module –with-stream
(2) nginx 프로필 nginx. conf 수정:
[root@tkde-iphone ~]# vim /usr/local/nginx/conf/nginx.conf
user  www www;
worker_processes  32; 
pid        logs/nginx.pid;

events {
    #use epoll;                            #Linux               
    worker_connections  65535;
}

stream {
    upstream zifangsky {
        hash $remote_addr consistent;
        server 10.10.100.31:8000;
    }
    server {
        listen 8080;
        proxy_connect_timeout 5s;
        proxy_timeout 5s;
        proxy_pass zifangsky;
    }
}
http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       9000;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

}

위의 프로필 에 이 서버 에 접근 하 는 8080 포트 를 설정 하면 10. 10.100.31 이 서버 의 8000 포트 에 트 래 픽 을 전송 합 니 다.
(3) 감청 포트 확인:
[root@app01 nginx]# netstat -apn | grep 8080:

(4) 테스트 연결 대상 포트:
[root@app01 nginx]# telnet 10.10.100.31 8000
Trying 10.10.100.31...
Connected to 10.10.100.31.
Escape character is '^]'.

(5) 다른 클 라 이언 트 에서 nginx 서버 에 연 결 된 8080 포트 포트 를 테스트 합 니 다.
[root@app05 ~]# telnet 192.168.1.30 8080
Trying 192.168.1.30...
Connected to 192.168.1.30.
Escape character is '^]'.
Connection closed by foreign host.

물론 뒤쪽 은 클 라 이언 트 에서 10.10.100.31 에 연 결 된 곳 을 nginx 서버 에 연 결 된 주소 로 바 꾸 는 것 입 니 다. 업무 에 문제 가 없 으 면 설정 이 완료 되 었 음 을 설명 합 니 다.
다음으로 전송:https://blog.51cto.com/983836259/1864242

좋은 웹페이지 즐겨찾기