ホームページ  >  記事  >  運用・保守  >  nginxはソケットをサポートしていますか?

nginxはソケットをサポートしていますか?

(*-*)浩
(*-*)浩オリジナル
2019-06-10 16:44:235259ブラウズ

ソケットを介して通信するインターフェースがありますが、ピアサーバーへのアクセスにはIP制限があるため、ピアサーバーへのアクセス権限を持つ踏み台マシンを使用する必要があります。 nginx1.9 では、ストリームを介して実装される TCP 層転送のサポートが開始され、ソケットも TCP 通信に基づいています。

nginxはソケットをサポートしていますか?

実装プロセス:

1. nginx をインストールします。ストリーム モジュールはデフォルトではインストールされず、パラメータを追加します: –with-stream、システムのバージョンに応じて nginx1.9 以降を選択します。

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 ではなく tcp 層を介して転送されるため、http 内に配置することはできません。つまり、/etc/nginx/conf.d/ に配置することはできません。

http で設定されている場合、nginx の起動時に次のエラーが報告されます:

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

3. 次の内容を含む新しい bss_num_30001.conf ファイルを tcp.d の下に作成します。 ##

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:nginxとnettyの違い次の記事:nginxとnettyの違い