nginx tcp 모듈 설치

6679 단어 Nginx
nginx tcp 모듈 설치
  • nginx 버 전 선택 버 전
  • tcp_model https://github.com/yaoweibin/nginx_tcp_proxy_module

  • 초기 nginx 1.12 버 전 설치
  • OpenSSL 설치 필요
  • 네트워크 가 있 습 니 다: sudo apt - get install libssl - dev
  • OpenSSL 다운로드https://www.openssl.org/source/

  • 설치 과정 make 오류
    ../libcrypto.a(eng_rsax.o): In function `e_rsax_bn_mod_exp':
    eng_rsax.c:(.text+0x132f): undefined reference to `mod_exp_512'
    ../libcrypto.a(eng_rsax.o): In function `e_rsax_rsa_mod_exp':
    eng_rsax.c:(.text+0x1c08): undefined reference to `mod_exp_512'
    eng_rsax.c:(.text+0x22a8): undefined reference to `mod_exp_512'
    ../libcrypto.a(e_rc4_hmac_md5.o): In function `rc4_hmac_md5_cipher':
    e_rc4_hmac_md5.c:(.text+0x44e): undefined reference to `rc4_md5_enc'
    e_rc4_hmac_md5.c:(.text+0x4f1): undefined reference to `rc4_md5_enc'
    
    해결 방안 을 설정 해 야 합 니 다. / configure linux - x8664 make install 오류
    cms.pod around line 457: Expected text after =item, not a number
    cms.pod around line 461: Expected text after =item, not a number
    cms.pod around line 465: Expected text after =item, not a number
    cms.pod around line 470: Expected text after =item, not a number
    cms.pod around line 474: Expected text after =item, not a number
    
    make installsw 오류 해결.
  • ngixn 1.12 버 전 make 프로 세 스 오류
    ../nginx_tcp_proxy_module-master/ngx_tcp_core_module.c:33:40: error: ‘NGX_CONF_MULTI’ undeclared here (not in a function)
           NGX_TCP_MAIN_CONF|NGX_CONF_BLOCK|NGX_CONF_MULTI|NGX_CONF_NOARGS,
                                            ^
    ../nginx_tcp_proxy_module-master/ngx_tcp_core_module.c: In function ‘ngx_tcp_core_listen’:
    ../nginx_tcp_proxy_module-master/ngx_tcp_core_module.c:484:9: error: cannot convert to a pointer type
             if (ngx_memcmp(ls[i].sockaddr + off, u.sockaddr + off, len) != 0) {
             ^
    ../nginx_tcp_proxy_module-master/ngx_tcp_core_module.c:504:5: error: incompatible type for argument 2 of ‘memcpy’
         ngx_memcpy(ls->sockaddr, u.sockaddr, u.socklen);
         ^
    In file included from src/os/unix/ngx_linux_config.h:27:0,
                     from src/core/ngx_config.h:26,
                     from ../nginx_tcp_proxy_module-master/ngx_tcp_core_module.c:2:
    /usr/include/string.h:42:14: note: expected ‘const void * __restrict__’ but argument is of type ‘ngx_sockaddr_t’
     extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
                  ^
    make[1]: *** [objs/addon/nginx_tcp_proxy_module-master/ngx_tcp_core_module.o] Error 1
    make[1]: Leaving directory `/app/build/nginx-1.11.2'
    make: *** [build] Error 2
    
    홈 페이지 를 설치 한 많은 사람들 이 이 문 제 를 만 나 해결 방법 을 찾 지 못 했다.

  • 1. 8 버 전의 nginx 설치
    다시 압축 풀기 nginxtcp_proxy_module-master
    sudo patch -p1 < /home/guo/Downloads/nginx_tcp_proxy_module-master/tcp_1_8.patch 
    
    sudo ./configure --add-module=/home/guo/Downloads/nginx_tcp_proxy_module-master --without-http_rewrite_module --with-openssl=/home/guo/Downloads/openssl-1.0.1f --without-http_gzip_module
    

    Make 프로 세 스 오류 보고
    cms.pod around line 457: Expected text after =item, not a number
    cms.pod around line 461: Expected text after =item, not a number
    cms.pod around line 465: Expected text after =item, not a number
    cms.pod around line 470: Expected text after =item, not a number
    cms.pod around line 474: Expected text after =item, not a number
    

    그 이 유 는 nginx 가 openssl 의 man 가방 을 호출 했 기 때 문 입 니 다. 우 리 는 openssl 을 설치 하 는 과정 에서 make install 을 사 용 했 습 니 다.sw 명령, man 패 키 지 를 설치 하지 않 았 습 니 다.잘못 을 보고 하 다.
    https://askubuntu.com/questions/454575/error-255-when-trying-to-install-openssl-1-0-1g-from-source
    적당 한 openssl 버 전 을 찾 아 다시 설치 합 니 다.
    sudo patch -p1 < /home/guo/Downloads/nginx_tcp_proxy_module-master/tcp_1_8.patch 
    
    sudo ./configure --add-module=/home/guo/Downloads/nginx_tcp_proxy_module-master --without-http_rewrite_module --with-openssl=/home/guo/Downloads/openssl-1.0.2g --without-http_gzip_module
    

    해결!!
    nginx tcp 설정 및 테스트
      tcp {
    
            upstream cluster {
                # simple round-robin
                server localhost:9200;
                #server 192.168.0.2:80;
    
                check interval=3000 rise=2 fall=5 timeout=1000;
    
                #check interval=3000 rise=2 fall=5 timeout=1000 type=ssl_hello;
    
                #check interval=3000 rise=2 fall=5 timeout=1000 type=http;
                #check_http_send "GET / HTTP/1.0\r
    \r
    "; #check_http_expect_alive http_2xx http_3xx; } server { listen 8888; proxy_pass cluster; } }

    9200 포트 를 통 해 로 컬 ES 시스템 에 접근 할 수 있 습 니 다.
    curl -XGET 'localhost:9200/_cat/health?v&pretty'
    

    정상 방문.
    8888 포트 를 통 해 로 컬 ES 시스템 에 접근:
    curl -XGET 'localhost:8888/_cat/health?v&pretty'
    

    정상 방문.로그 파일 을 보십시오. 포트 전송 기록 이 있 습 니 다.
    사실은 1.9 버 전부터 Nginx 자체 Tcp 역방향 프 록 시 처리 모듈 을 가지 고 있 습 니 다.
    stream{
        upstream backend{                                          
            hash $remote_addr consistent;
            server 127.0.0.1:7397 max_fails=3 fail_timeout=10s;    
            server 127.0.0.1:7398 max_fails=3 fail_timeout=10s;
        }
    
        server{
            listen 1268 ssl;                                       
            ssl_certificate     /home/guogangj/certs/cert1268.pem; 
            ssl_certificate_key  /home/guogangj/certs/key1268.pem; 
            ssl_session_cache    shared:SSL:10m;                   
            ssl_session_timeout  10m;                              
            ssl_ciphers  HIGH:!aNULL:!MD5;                         
            ssl_prefer_server_ciphers  on;                         
            proxy_connect_timeout 20s;                             
            proxy_timeout 5m;                                      
            proxy_pass backend;                                    
        }
    }

    좋은 웹페이지 즐겨찾기