прокси nginx + apache в докере - PullRequest
0 голосов
/ 02 декабря 2018

Я новичок в Докере.И у меня была задача - создать Docker-контейнер с nginx, который будет отправлять php (динамический) в Apache Docker-контейнер.

Я решил свою проблему.Но я провел много времени.Поэтому я надеюсь, что это поможет другим людям

Есть много статей - как собрать nginx + apache ... Но они не работают в Docker

Моя проблема была решена путем изменения файла конфигурации nginx(my.conf | default ...)

от:

upstream backend {
    server 127.0.0.1:8080;
}

до:

upstream backend {
    server apache2php:8080;
}

где apache2php - это имя службы в docker-compose.yml

примерно так:

version: "3"
services:

    apache2php:
        image: apache2php
        ports:
        - "8080:8080"
        volumes:
        - "/var/www/html:/var/www/html"

    mynginx:
        image: mynginx
        ports:
        - "80:80"
        volumes:
        - "/var/www/html:/var/www/html"

Когда я проверял журналы (/ var / log / nginx / error.log) в контейнере nginx с моими неверными настройками я обнаружил ошибку 111 (Соединение было отклонено при подключении к восходящему каналу)

А также не было моего локального ip (127.0.0.1) в поле Host, а другого (например,10.5.100.2 - может быть другой)

Я думаю, что докер использует свои собственные ip-адреса в сети докера и что IP-адреса используются контейнерами докера (nginx использует 10.5.100.2:8080, когда нужно перенаправить файл phpв apache)

Но когда мы переходим к 127.0.0.1:80 во внешней сети (например, когда мы набираем thIP в браузере) Docker переводит внутренний IP (nginx - 10.5.100.2:80) в внешний IP, который мы вводим позже (127.0.0.1:80)

Прав ли я?

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