Обратный прокси-сервер Nginx не может связаться с хостом докера. Хостинг на Amazon (EC2) Я хочу загружать различные приложения, зависит от местоположения.
nginx.conf
server {
listen 80 ;
server_name localhost;
location /web {
proxy_pass http://web:4000/;
}}
Расположение работает, и это означает, что изображение nginx построено правильно.
docker-compose file
services:
web:
image: web
container_name: web
ports:
- 4000:4000
hostname: web
networks:
- default
nginx:
image: nginx
container_name: nginx
ports:
- 80:80
depends_on:
- web
networks:
- default
networks:
default:
external:
name: my-network
Я ожидаю - когда я набираю url / web, должно отображаться приложение из контейнера Docker
Я пробовал
Run single container - works fine (web or nginx)
Added 127.0.0.1 web in /etc/hosts (I can do 'curl web' but it shows localhost response)
Added index index.html in location section
Added resolver in the location section
Use links instead of network
Когда "docker-compose up" я могу проверить контейнер докера (web) и посмотреть IP - 192.168.10.2. Затем curl 192.168.10.2
показывает мне index.html. Но я не могу сделать так, чтобы curl http://web:4000
казалось, что имя хоста недоступно, но я думаю, что использование IP в proxy_pass - плохое решение.