web-dev-qa-db-ja.com

ストリームブロック内のnginxserver_nameは可能ですか?

現在の設定は次のとおりです。

stream {
    server {
        listen 9987 udp;

        server_name  subdomain.EXAMPLE.com; # this line is resulting in an error

        proxy_pass localhost:9987;
        proxy_timeout 1s;
        proxy_responses 1;
        error_log logs/dns.log;
    }
}

server_name subdomain.EXAMPLE.com;

これは可能ですか?

$nginx -t

$nginx: [emerg] "server_name" directive is not allowed here in /etc/nginx/nginx.conf:15

Server_nameがなくても問題なく動作しますが、可能であればサブドメインを使用したいと思います。 (私は-with-streamでビルドを使用していますが、それは私の問題ではありません。)

9
Emmmm

TCPにはサーバー名の概念がないため、これは不可能です。クライアントがアクセスしようとしているホスト名をリクエストの一部として送信し、nginxがそれを特定のサーバーブロックに一致させることができるため、HTTPでのみ機能します。

ソース: https://forum.nginx.org/read.php?2,263208,263217#msg-263217

10
Emmmm