Прокси-сервер Nginx не может связаться с докером-контейнером по имени хоста - PullRequest
0 голосов
/ 31 октября 2019

Обратный прокси-сервер 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 - плохое решение.

1 Ответ

0 голосов
/ 31 октября 2019

Я не смог справиться с этими проблемами, поэтому я выбрал другой подход.

Создание сетевого ipam

 docker network create --gateway 172.20.0.1 --subnet 172.20.0.0/24 ipam 

Назначение для ipv4-адреса каждой службы в файле docker-compose

networks:
  default:
    ipv4_address: 172.20.0.5 for web
where
networks:
   default:
    external:
      name: ipam

Добавление chmod для каталога / var / www / html в моем веб-сайтеОбраз docker

chmod -R 755 /var/www/html

(кажется, этот дополнительный шаг необходим, если вы создаете контейнер LINUX под Windows Docker)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...