今天尝试用nginx对docker的emqx镜像创建的mqtt服务器做代理时,发现不能在http{}里进行配置了,如下,原先可以只用一个域名部署多个项目,通过nginx子域名代理实现.
http{
server {
server_name www.console.xn.com;
listion 80;
}
}
现在需要在stream模块里进行配置,但是和http模块的配置不同的是,当我配置了server_name 时,nginx会报错
"server_name" directive is not allowed here in /etc/nginx/nginx.conf:223
如果stream里无法配置server_name 是不是说明,没办法通过子域名来访问用docker搭建好的emqx?
是的,在 nginx 的 stream 模块中不能使用 server_name 指令。这意味着你不能通过子域名来访问用 Docker 搭建的 emqx 服务。可以通过使用不同的 IP 地址来访问不同的服务,或者使用不同的端口号来访问不同的服务。
已解决:是容器没有开放端口,导致NGINX转发不进来