流块内的nginx server_name可能吗?

Emm*_*mmm 7 proxy reverse nginx stream

目前的设置如下:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

server_name subdomain.EXAMPLE.com;

这可能吗?

$nginx -t

$nginx: [emerg] "server_name" directive is not allowed here in /etc/nginx/nginx.conf:15
Run Code Online (Sandbox Code Playgroud)

没有server_name工作正常,但我想尽可能使用子域.(我使用带有--with-stream的构建,这不是我的问题.)

Emm*_*mmm 11

TCP没有服务器名称的概念,因此这是不可能的.它仅适用于HTTP,因为客户端发送它尝试访问的主机名作为请求的一部分,允许nginx将其与特定服务器块匹配.

资料来源:https://forum.nginx.org/read.php?2,263208,263217#msg-263217

  • 您好,这似乎不准确,因为另一篇文章表明 Nginx 能够在将请求传递到上游服务器之前读取 SSL 握手中的 SNI 标头:https://serverfault.com/a/999428 (4认同)