Я хочу контейнировать свои веб-приложения. В настоящее время я использую Apache для предоставления нескольких приложений PHP.
Каждое приложение должно быть предоставлено своим собственным контейнером.
Nginx должен быть доступен по порту 80/443. В зависимости от подчиненного маршрута следует проксировать к одному из контейнеров.
Например:
www.url.de / hello1 -> hello1: 80
www.url.de/hello2 -> hello2: 80
докер-compose.yml:
version: '3'
services:
nginx:
image: nginx:latest
container_name: reverse_proxy
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- "80:80"
- "443:443"
networks:
- app-network
depends_on:
- hello1
- hello2
hello1:
build: ./test1
image: hello1
container_name: hello1
expose:
- "80"
networks:
- app-network
hello2:
build: ./test2
image: hello2
container_name: hello2
expose:
- "80"
networks:
- app-network
networks:
app-network:
nginx.conf:
events {
}
http {
error_log /etc/nginx/error_log.log warn;
client_max_body_size 20m;
proxy_cache_path /etc/nginx/cache keys_zone=one:500m max_size=1000m;
server {
server_name wudio.de;
location / {
proxy_pass http://hello1:80;
}
location /hello1/ {
proxy_pass http://hello1:80;
rewrite ^/hello1(.*)$ $1 break;
}
location /hello2/ {
proxy_pass http://hello2:80;
rewrite ^/hello2(.*)$ $1 break;
}
}
}
Если я запускаю docker-compose up -d, только контейнер с изображением webapp-test1 находится в сети. И я также могу добраться до него по curl localhost: 8081.
Nginx не работает. Если я удаляю строку, в которой я добавляю nginx.conf в том Nginx, он работает.
Что я делаю не так?
Edit1:
http: // отсутствует. Но проксирование все еще не работает на подчиненных. Только местоположение / работает. Как мне запустить / hell1?