サブドメイン「curl:(52)サーバーの空の応答」に対するNginxリバースフロープロキシ

サブドメイン「curl:(52)サーバーの空の応答」に対するNginxリバースフロープロキシ

localhost:3000Nginxを使用してsubdomain.example.comのTCPをモジュールにリダイレクトするためのリバースプロキシを設定しようとしていますssl_preread_server_name

ホストはtest.localhostテスト目的で定義されています/etc/hosts/

私のもの/etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 768;
        # multi_accept on;
}

stream {
        map $ssl_preread_server_name $name {
        test.localhost test;
        }

        upstream test {
                server localhost:3000;
        }

        server {
                listen 2600;
                proxy_pass $name;
                #proxy_protocol on;
                ssl_preread on;
        }
}

Webアプリを自分で試してみると、次のようになりますcurl

$ curl localhost:3000
Hello World!

しかし、プロキシを試してみると、次のようになります。

$ curl -vvv test.localhost:2600
*   Trying 127.0.0.1:2600...
* Connected to test.localhost (127.0.0.1) port 2600 (#0)
> GET / HTTP/1.1
> Host: test.localhost:2600
> User-Agent: curl/7.74.0
> Accept: */*
> 
* Empty reply from server
* Connection #0 to host test.localhost left intact
curl: (52) Empty reply from server

OKに変更しますproxy_pass test;が、複数のサブドメインがTCPを別のローカルポートにストリーミングしたいと思います。

答え1

焦点はSSLにあります。

たぶんあなたは試す必要があります

curl https://test.localhost:2600

関連情報