ngx_stream_proxy_module モジュール

設定例
ディレクティブ
     proxy_bind
     proxy_buffer_size
     proxy_connect_timeout
     proxy_download_rate
     proxy_next_upstream
     proxy_next_upstream_timeout
     proxy_next_upstream_tries
     proxy_pass
     proxy_protocol
     proxy_responses
     proxy_ssl
     proxy_ssl_certificate
     proxy_ssl_certificate_key
     proxy_ssl_ciphers
     proxy_ssl_crl
     proxy_ssl_name
     proxy_ssl_password_file
     proxy_ssl_server_name
     proxy_ssl_session_reuse
     proxy_ssl_protocols
     proxy_ssl_trusted_certificate
     proxy_ssl_verify
     proxy_ssl_verify_depth
     proxy_timeout
     proxy_upload_rate

ngx_stream_proxy_moduleモジュール(1.9.0)は、UDP、TCPおよびUNIXドメインソケット上のデータストリームをプロキシすることができます。

設定例

server {
    listen 127.0.0.1:12345;
    proxy_pass 127.0.0.1:8080;
}

server {
    listen 12345;
    proxy_connect_timeout 1s;
    proxy_timeout 1m;
    proxy_pass example.com:12345;
}

server {
    listen 53 udp;
    proxy_responses 1;
    proxy_timeout 20s;
    proxy_pass dns.example.com:53;
}

server {
    listen [::1]:12345;
    proxy_pass unix:/tmp/stream.socket;
}

ディレクティブ

構文: proxy_bind address [transparent] | off;
デフォルト: -
コンテキスト: stream, server

このディレクティブはバージョン1.9.2で導入されました。

プロキシされたサーバへ向かって出て行く接続が、指定したローカルのIP アドレスから始まるようにします。パラメータ値は変数を含むことができます (1.11.2)。特別な値offは、上の設定レベルのproxy_bindディレクティブの継承の影響をキャンセルすることができます。これによりシステムにローカルIPアドレスを自動設定することができます。

transparent パラメータ (1.11.0) はプロキシされたサーバへ向かって出ていく接続がローカルIPアドレスでは無いようにします。例えば、クライアントの実際のIPアドレス:

proxy_bind $remote_addr transparent;

このパラメータが動作するためには、通常nginxのワーカープロセスを superuser 権限を使って実行する必要があります。Linux上では、transparentパラメータが指定された場合はワーカープロセスはマスタープロセスからCAP_NET_RAW機能を継承するため、必要ではありません (1.13.8)。プロキシされたサーバからのネットワーク通信を捕らえるためにカーネルのルーティングテーブルを設定する必要もあります。

構文: proxy_buffer_size size;
デフォルト:
proxy_buffer_size 16k;
コンテキスト: stream, server

このディレクティブはバージョン1.9.4から導入されました。

プロキシされたサーバからデータを読み込むのに使われるバッファの size を設定します。また、クライアントからデータを読み込むのに使われるバッファの size を設定します。

構文: proxy_connect_timeout time;
デフォルト:
proxy_connect_timeout 60s;
コンテキスト: stream, server

プロキシされたサーバとの接続の確立のタイムアウトを定義します。

構文: proxy_download_rate rate;
デフォルト:
proxy_download_rate 0;
コンテキスト: stream, server

このディレクティブはバージョン1.9.3から導入されました。

プロキシされるサーバからデータを読み込む時のスピードを制限します。rateは秒間あたりのバイトで指定されます。0の値はレートの制限を無効にします。制限は接続ごとに設定されます。もしnginxがプロキシされるサーバに同時に二つの接続を開いた場合は、全体のレートは指定された制限の二倍になるでしょう。

構文: proxy_next_upstream on | off;
デフォルト:
proxy_next_upstream on;
コンテキスト: stream, server

プロキシされたサーバへの接続が確立できない場合、クライアント接続が次のサーバに渡されるかどうかを決定します。

次のサーバへの接続を渡すことを 試行回数 および 時間で制限することができます。

構文: proxy_next_upstream_timeout time;
デフォルト:
proxy_next_upstream_timeout 0;
コンテキスト: stream, server

次のサーバに接続を渡すことができる時間を制限します。0 の値はこの制限を無効にします。

構文: proxy_next_upstream_tries number;
デフォルト:
proxy_next_upstream_tries 0;
コンテキスト: stream, server

次のサーバに接続を渡すときに、可能な試行回数を制限します。0 の値はこの制限を無効にします。

構文: proxy_pass address;
デフォルト: -
コンテキスト: server

プロキシされるサーバのアドレスを設定します。アドレスはドメイン名またはIPアドレスと、ポートで指定することができます。

proxy_pass localhost:12345;

あるいは、UNIXドメインソケットパス:

proxy_pass unix:/tmp/stream.socket;

ドメイン名が幾つかのアドレスに解決される場合は、ラウンドロビンの形式でそれら全てが使われるでしょう。更に、server groupとしてアドレスを指定することができます。

アドレスは変数を使って指定することもできます (1.11.3):

proxy_pass $upstream;

この場合、サーバ名は記述されたserver groupsの中で検索されます。もし見つからない場合は、サーバ名はresolverを使って決定されます。

構文: proxy_protocol on | off;
デフォルト:
proxy_protocol off;
コンテキスト: stream, server

このディレクティブはバージョン1.9.2で導入されました。

プロキシされたサーバへの接続にSSL/TLSプロトコルを有効にします。

構文: proxy_responses number;
デフォルト: -
コンテキスト: stream, server

このディレクティブはバージョン 1.9.13 から導入されました。

UDPプロトコルが使われる場合は、クライアントリクエストに応答してプロキシされたサーバからと思われるデータグラムの数を設定します。デフォルトでは、データグラムの数は無制限です: 応答データグラムは proxy_timeout 値が有効期限切れになるまで送信されるでしょう。

構文: proxy_ssl on | off;
デフォルト:
proxy_ssl off;
コンテキスト: stream, server

プロキシされたサーバへの接続にSSL/TLSプロトコルを有効にします。

構文: proxy_ssl_certificate file;
デフォルト: -
コンテキスト: stream, server

プロキシされるサーバに対して認証に使われるPEM形式の証明書の ファイルを指定します。

構文: proxy_ssl_certificate_key file;
デフォルト: -
コンテキスト: stream, server

プロキシされるサーバに対して認証に使われるPEM形式の秘密鍵の ファイルを指定します。

構文: proxy_ssl_ciphers ciphers;
デフォルト:
proxy_ssl_ciphers DEFAULT;
コンテキスト: stream, server

プロキシされたHTTPSサーバの接続で有効なcipherを指定します。cipherはOpenSSLライブラリで理解される形式で指定されます。

全てのリストは"openssl ciphers"コマンドを使ってみることができます。

構文: proxy_ssl_crl file;
デフォルト: -
コンテキスト: stream, server

プロキシされるサーバの証明書をverifyするために使われるPEM形式の無効な証明書(CRL)のfileを指定します。

構文: proxy_ssl_name name;
デフォルト:
proxy_ssl_name host from proxy_pass;
コンテキスト: stream, server

プロキシされるサーバの証明書をverifyするために使われるサーバ名を上書きし、プロキシされるサーバと接続を確立する時にpassed through SNIできます。サーバ名は変数を使って指定することもできます (1.11.3)。

デフォルトでは、proxy_passアドレスのホスト部分が使われます。

構文: proxy_ssl_password_file file;
デフォルト: -
コンテキスト: stream, server

secret keysのためのそれぞれのパスフレーズが一行に指定されているfileを指定します。パスフレーズはキーがロードされる時に順番に試されます。

構文: proxy_ssl_server_name on | off;
デフォルト:
proxy_ssl_server_name off;
コンテキスト: stream, server

プロキシされるサーバと接続を確立する時に、TLS Server Name Indication extension (SNI, RFC 6066) を使ってサーバ名を渡すことを有効または無効にします。

構文: proxy_ssl_session_reuse on | off;
デフォルト:
proxy_ssl_session_reuse on;
コンテキスト: stream, server

プロキシされたサーバと動作する時に、SSLセッションを再利用するかどうかを決定します。ログに"SSL3_GET_FINISHED:digest check failed"が現れる場合は、セッションの再利用を無効にしてみてください。

構文: proxy_ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2] [TLSv1.3];
デフォルト:
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
コンテキスト: stream, server

プロキシされるサーバへ指定されたプロトコルのリクエストを有効にします。

構文: proxy_ssl_trusted_certificate file;
デフォルト: -
コンテキスト: stream, server

プロキシされるサーバの証明書をverifyするために使われるPEM形式の信頼されたCA証明書のfileを指定します。

構文: proxy_ssl_verify on | off;
デフォルト:
proxy_ssl_verify off;
コンテキスト: stream, server

プロキシされるサーバの証明書の検証を有効または無効にします。

構文: proxy_ssl_verify_depth number;
デフォルト:
proxy_ssl_verify_depth 1;
コンテキスト: stream, server

プロキシされるサーバの連鎖証明書の検証の深さを設定します。

構文: proxy_timeout timeout;
デフォルト:
proxy_timeout 10m;
コンテキスト: stream, server

クライアントあるいはプロキシされたサーバ接続上の2つの連続する読み込みあるいは書き込み操作のタイムアウトを設定します。 connections. この時間の間に何もデータが転送されない場合、接続は閉じられます。

構文: proxy_upload_rate rate;
デフォルト:
proxy_upload_rate 0;
コンテキスト: stream, server

このディレクティブはバージョン1.9.3から導入されました。

クライアントからデータを読み込む時のスピードを制限します。rateは秒間あたりのバイトで指定されます。0の値はレートの制限を無効にします。制限は接続ごとに設定されます。もしクライアントが同時に二つの接続を開いた場合は、全体のレートは指定された制限の二倍になるでしょう。

TOP
inserted by FC2 system