Docker swarm - centOS - nginx

I ағымдағы қондырғымен докер үйірін басқарып жатырмын

swarm.abc.com (192.168.1.1 дейік) - мастер node1.abc.com - бала node2.abc.com - бала

Менде 888 портта жұмыс істейтін үйіндіде жұмыс істейтін контейнер бар. Егер мен 192.168.1.1:888 қосылсам - мен оған қол жеткізе аламын - бұл жақсы.

swarm.abc.com сайтында nginx бар. nginx конфигурациясында менде

server {
    listen 80;
    server_name my.domain.com;

    location / {
        proxy_pass http://localhost:888; #which should redirect me to 192.168.1.1
    }
}

Алайда, my.domain.com қосылу кезінде мен қосылудың күту уақытын аламын. Көмек бар ма?

Сәлеметсіз бе

0
задан 2 December 2019 в 15:27
1 ответ

Сети являются namespaced в докере, и часть того пространства имен является устройством закольцовывания, иначе 127.0.0.1 или localhost. Это означает, что localhost в nginx контейнере указывает на просто сеть nginx контейнера, не Ваш внешний хост.

Для контейнера к контейнерным сетям, поместите, контейнеры на том же пользователе создали сеть докера (сочините, делает это для Вас по умолчанию). Затем можно соединиться с другими контейнерами их контейнерным именем, контейнерным идентификатором, сервисным названием или сетевым псевдонимом. Таким образом, если Ваше контейнерное имя app-x, и в контейнере оно слушает на порте 999, и Вы имеете 888:999 как Ваш порт вперед, затем конфигурация nginx была бы похожа:

proxy_pass http://app-x:999;

Примечание, что не необходимо опубликовать или выставить порт из приложения-x для nginx для достижения его по контейнерным сетям.

0
ответ дан 4 December 2019 в 23:34

Теги

Похожие вопросы