首页 > 解决方案 > Docker + Nginx + EMQX

问题描述

我想在 Docker 上运行 EMQX。如何在 docker-compose 中使用 Nginx 设置 EMQX 代理?这是我的 docker-compose.yml:

version: '3.7'

services:
  web:
    build: ./
    command:  gunicorn -c gunicorn.conf.py push.wsgi --preload
    volumes:
      - ./:/usr/src/app/
    expose:
      - 8000
    env_file:
      - .env.prod
    depends_on:
      - redis
      - db

  nginx:
    build: ./nginx
    ports:
      - 6807:80
    depends_on:
      - web

  emqx:
    image: emqx/emqx:v4.0.0
    restart: always
    env_file:
      - .env.prod.mqtt
    volumes:
      - vol-emqx-data:/opt/emqx/data
      - vol-emqx-etc:/opt/emqx/etc
      - vol-emqx-log:/opt/emqx/log

# Names our volume
volumes:
  my-db:
  static_volume:
  media_volume:
  mysqld:
  vol-emqx-data:
    name: emqx-data
  vol-emqx-etc:
    name: emqx-etc
  vol-emqx-log:
    name: emqx-log

mqtt 代理启动成功,但无法在端口 1883 上访问。

这个 nginx.conf:

upstream push {
    server web:8000;
}

server {

    listen 80;

    location / {
        proxy_pass http://push;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
        client_max_body_size 100M;
    }

}

我是 Docker 的新手,我不知道如何解决这个问题。

标签: dockernginxdocker-composeemq

解决方案


推荐阅读