我在 Ubuntu 16.04 上安装了 ppa 的最新 NGINX。
nginx 版本:nginx/1.12.1
据我了解,它应该支持流和 UDP 负载平衡。
但我收到此错误信息:
nginx: [emerg] "stream" directive is not allowed here in /etc/nginx/conf.d/load-balancer.conf:3
这是我的配置/etc/nginx/conf.d/load-balancer.conf
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;
}
}
答案1
流需要与 http 块处于同一级别,因此
http { foo }
stream { bar }
我猜你的包含/etc/nginx/conf.d/*.conf
位于http {}
块中而不是块外。检查 /etc/nginx/nginx.conf 中的包含,也许你必须为流部分创建一个新的
答案2
我在使用默认 Docker 镜像时遇到了同样的错误nginx
,我尝试通过对 DockerFile 进行小幅修改来解决这个问题:
COPY docker/ngnix/ngnix.conf /tmp/docker.nginx
COPY docker/ngnix/stream.conf /etc/nginx/stream.conf
RUN envsubst '$RAILS_ROOT','$DOMAIN' < /tmp/docker.nginx > /etc/nginx/conf.d/default.conf
RUN echo 'include /etc/nginx/stream.conf;' >> /etc/nginx/nginx.conf
流配置文件
stream{
server{
...
}
}
我即将查明此版本是否是nginx
使用流模块构建的......
附言部署没有错误
+1 我通过 LoadBalancer 和反向代理从我的终端连接到 AWS 上 Kubernetes 上的 Postgres!现在,SSL...