带有Docker的Nginx代理
我尝试使用Docker和Nginx代理安装新的应用程序。我的设置很好,只有1个端口通过docker-compose.yml共享。但我需要在容器和主机之间共享2个端口 对于2个端口,我的代理返回错误502:带有Docker的Nginx代理,docker,nginx,docker-compose,Docker,Nginx,Docker Compose,我尝试使用Docker和Nginx代理安装新的应用程序。我的设置很好,只有1个端口通过docker-compose.yml共享。但我需要在容器和主机之间共享2个端口 对于2个端口,我的代理返回错误502: version: '3' services: foody: build: ./config/docker container_name: my_app environment: #- NODE_ENV=production - LOCAL_
version: '3'
services:
foody:
build: ./config/docker
container_name: my_app
environment:
#- NODE_ENV=production
- LOCAL_USER_ID=$USER_ID
- LOCAL_GROUP_ID=$GROUP_ID
- PGID=1000
- PUID=1000
- TZ=Europe/London
- VIRTUAL_HOST=myapp.${SITE_URL},api-myapp.${SITE_URL}
- VIRTUAL_PORT=3339,3340
- LETSENCRYPT_HOST=myapp.${SITE_URL}
- LETSENCRYPT_EMAIL=${MAILER_DEFAUT_SENDER_ADDRESS}
ports:
- 3339:3000
- 3340:1337 // Work if i comment or remove this line
volumes:
- .:/app
networks:
default:
external:
name: nginx-proxy
我真的不明白为什么只有在docker compose文件上共享1个端口时,我的代理才能工作…:/
发件人:
多个端口
如果容器公开多个端口,nginx proxy将默认为在端口80上运行的服务。如果需要指定不同的端口,可以设置虚拟端口env var以选择不同的端口。如果您的容器仅公开一个端口,并且它具有虚拟主机环境变量集,则将选择该端口。
容器中的我的日志:
nginx.1 | 2019/12/19 06:33:41 [error] 2227#2227: *151845 no live upstreams while connecting to upstream, client: xx.xxx.xxx.xx, server: myapp.mydomain.com, request: "GET /favicon.ico HTTP/2.0", upstream: "http://myapp.mydomain.com/favicon.ico", host: "myapp.mydomain.com", referrer: "https://myapp.mydomain.com/"
有人已经修复了这个简单的用例吗
谢谢大家! 关于这个错误,日志告诉了你什么?嗨:)我已经用这些信息编辑了我的第一篇文章。你的意思是
3340:3000
对吗?不,3339:3000
是客户端应用程序,3340:1337
是api。正如我所想的:文档提到的是“端口”,而不是使用VIRTUAL\u port
设置的“端口”(多个)。。。