我想在 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 的新手,我不知道如何解决这个问题。