nginx:“stream”指令在这里是不允许的

我有安装在Ubuntu 16.04上的ppa最新的NGINX。

nginx版本:nginx / 1.12.1

从我的理解,它应该支持stream和UDP负载平衡

但是我得到这个错误消息:

nginx: [emerg] "stream" directive is not allowed here in /etc/nginx/conf.d/load-balancer.conf:3 

这是我在/etc/nginx/conf.d/load-balancer.confconfiguration

 stream { upstream backend { least_conn; server 172.31.9.51 fail_timeout=10s; server 172.31.20.140 fail_timeout=10s; } server { listen 500 udp; listen 4500 udp; proxy_pass backend; proxy_timeout 1s; proxy_responses 1; error_log logs/dns.log; } } 

stream需要与http块相同

 http { foo } stream { bar } 

我的猜测是你的include /etc/nginx/conf.d/*.conf位于http {}块中,而不是在它之外。 检查包含/etc/nginx/nginx.conf,也许你必须为stream部分做一个新的