Nginx具有多个docker组合错误111
我正在尝试使用Nginx作为反向代理来部署具有多个docker compose文件的服务。 我的文件夹结构是: 我的档案是: Apple docker-compose.yaml:Nginx具有多个docker组合错误111,docker,nginx,docker-compose,Docker,Nginx,Docker Compose,我正在尝试使用Nginx作为反向代理来部署具有多个docker compose文件的服务。 我的文件夹结构是: 我的档案是: Apple docker-compose.yaml: version: "3.5" services: apples: build: context: ./ dockerfile: Dockerfile networks: reverseproxy_santo-dio: al
version: "3.5"
services:
apples:
build:
context: ./
dockerfile: Dockerfile
networks:
reverseproxy_santo-dio:
aliases:
# ApplesApp hostname on "fruit-network"
- apples_net
networks:
reverseproxy_santo-dio:
external: true
苹果码头工人:
FROM httpd:2.4
RUN echo "<html><body><h1>A</h1>App A works!</body></html>" > /usr/local/apache2/htdocs/index.html
橙色码头工人:
FROM httpd:2.4
RUN echo "<html><body><h1>B</h1>App B works!</body></html>" > /usr/local/apache2/htdocs/index.html
其中nginx.conf:
server {
# Redirect http:// to https://
listen 80; # default_server;
listen [::]:80;
error_log /var/log/nginx/mylog.error_log debug;
#frontend
location / {
proxy_pass http://apples_net;
}
#backend
location /api/ {
proxy_pass http://orange_net:8080/api;
}
}
要部署我启动的服务,请执行以下操作:
谢谢,我找到了解决办法。我对nginx.conf有问题。我不明白为什么
location /api/ {
proxy_pass http://orange_net:8080/api;
}
只有耐心才行。这个设置非常适合我的目的
反向代理:
#/reverse-proxy/docker-compose.yaml
version: '3.5'
services:
nginx:
image: nginx:latest
container_name: reverse-proxy
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- ./log/:/var/log/nginx
ports:
- 80:80
- 443:443
networks:
- santo-dio
restart: always
networks:
santo-dio:
driver: bridge
ipam:
driver: default
config:
- subnet: 10.10.10.0/16
--
苹果:
#/apples/docker-compose.yaml
#/apples/Dockerfile
version: "3.5"
services:
apples:
build:
context: ./
dockerfile: Dockerfile
networks:
reverseproxy_santo-dio:
ipv4_address: 10.10.10.2
aliases:
- apples_net
networks:
reverseproxy_santo-dio:
external: true
橙子:
#/oranges/docker-compose.yaml
#/oranges/Dockerfiles
version: "3.5"
services:
orange:
build:
context: ./
dockerfile: Dockerfile
# expose:
# - 8081
networks:
reverseproxy_santo-dio:
ipv4_address: 10.10.10.1
aliases:
- orange_net
networks:
reverseproxy_santo-dio:
external: true
在这个版本中,我映射了我的应用程序的IP地址。但是可以跳过这一步,只使用别名You
proxy\u passhttp://orange_net:8080
;“orange”容器正在侦听该端口,还是默认的HTTP端口80?我认为它使用端口80,因为在网络中它有“orange_net”作为别名。但是如果我使用“”我会得到同样糟糕的响应。
#/reverse-proxy/nginx.conf
server {
server_name apples_net.com;
#resolver 127.0.0.11 valid=5s; # Local Docker DNS
error_log /var/log/nginx/apples_net.error_log debug;
location / {
auth_request off;
#proxy_pass http://apples_net:80;
proxy_pass http://10.10.10.2:80;
}
}
server {
server_name orange_net.com;
#resolver 127.0.0.11 valid=5s; # Local Docker DNS
error_log /var/log/nginx/orange_net.error_log debug;
location / {
auth_request off;
#proxy_pass http://orange_net:80;
proxy_pass http://10.10.10.1:80;
}
}
#/apples/docker-compose.yaml
#/apples/Dockerfile
version: "3.5"
services:
apples:
build:
context: ./
dockerfile: Dockerfile
networks:
reverseproxy_santo-dio:
ipv4_address: 10.10.10.2
aliases:
- apples_net
networks:
reverseproxy_santo-dio:
external: true
#/oranges/docker-compose.yaml
#/oranges/Dockerfiles
version: "3.5"
services:
orange:
build:
context: ./
dockerfile: Dockerfile
# expose:
# - 8081
networks:
reverseproxy_santo-dio:
ipv4_address: 10.10.10.1
aliases:
- orange_net
networks:
reverseproxy_santo-dio:
external: true