>  기사  >  운영 및 유지보수  >  nginx는 소켓을 지원합니까?

nginx는 소켓을 지원합니까?

(*-*)浩
(*-*)浩원래의
2019-06-10 16:44:235181검색

소켓을 통해 통신하는 인터페이스가 있습니다. Peer 서버에 접근하는데 IP 제한이 있어서 Peer 서버에 접근할 수 있는 권한이 있기 때문에 Springboard 머신을 사용해야 합니다. nginx1.9에서는 스트림을 통해 구현되는 TCP 레이어 포워딩을 지원하기 시작하며, 소켓 역시 TCP 통신을 기반으로 합니다.

nginx는 소켓을 지원합니까?

구현 프로세스:

1. 스트림 모듈은 기본적으로 설치되지 않습니다. –with-stream을 선택하세요. 시스템 버전.

2.nginx.conf 구성, 설명 참조: ngx_stream_core_module

nginx.conf

user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
.................
}

# tcp层转发的配置文件夹

include /etc/nginx/tcp.d/*.conf;

스트림 구성은 http에 배치할 수 없습니다. 즉, /etc/nginx에 배치할 수 없습니다. /conf.d/, Stream은 http 전달이 아닌 tcp 계층을 통해 전달되기 때문입니다.

http로 구성된 경우 nginx를 시작할 때 다음 오류가 보고됩니다.

nginx: [emerg] "server" directive is not allowed here

3. 다음 내용으로 tcp.d 아래에 새 bss_num_30001.conf 파일을 만듭니다.

stream {
    # 添加socket转发的代理
    upstream bss_num_socket {
        hash $remote_addr consistent;
        # 转发的目的地址和端口
        server 130.51.11.33:19001 weight=5 max_fails=3 fail_timeout=30s;
    }

    # 提供转发的服务,即访问localhost:30001,会跳转至代理bss_num_socket指定的转发地址
    server {
       listen 30001;
       proxy_connect_timeout 1s;
       proxy_timeout 3s;
       proxy_pass bss_num_socket;
    }
}

4 nginx를 다시 시작하고 방문합니다. localhost:30001 , bss_num_socket에 지정된 전달 주소 130.51.11.33:19001로 점프합니다.

더 많은 Nginx 관련 기술 기사를 보려면 Nginx 사용법 튜토리얼 칼럼을 방문하여 알아보세요!

위 내용은 nginx는 소켓을 지원합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.