当前设置如下:
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 的构建,这不是我的问题。)
答案 0 :(得分:6)
TCP没有服务器名称的概念,因此这是不可能的。它只能起作用 在HTTP中,因为客户端发送它尝试访问的主机名 请求的一部分,允许nginx将其与特定服务器块匹配。
来源:https://forum.nginx.org/read.php?2,263208,263217#msg-263217