два контейнера приложений Docker на одном nginx

Я пытаюсь обслуживать 2 веб-приложения, которые должны работать на базе hhvm. Создать один образ докера, включающий nginx и default.conf, несложно. Но теперь, когда я получу n приложения в виде микросервисов, я хочу протестировать их и поделиться контейнером nginx, когда я продолжу работу с другими, такими как БД, например.

Итак, когда к nginx осуществляется внешний доступ с помощью hhvm, нужно ли также предоставлять hhvm для этого образа? Или я могу отослать его к debian, где hhvm уже предоставлен? Затем я мог бы сохранить nginx.conf примерно так:

upstream api.local.io {
   server 127.0.0.1:3000;
}

upstream booking.local.io {
   server 127.0.0.1:5000;
}

Как я могу настроить правильный контейнер nginx для этого?


person bdart    schedule 01.10.2015    source источник
comment
возможный дубликат stackoverflow.com/questions/27828699/   -  person Mykola Gurov    schedule 01.10.2015
comment
Это не дубликат. Я хочу знать, как настроить контейнер nginx, а не Apache или просто порты.   -  person bdart    schedule 02.10.2015


Ответы (1)


Да, вы можете создать еще один контейнер nginx с nginx.conf, настроенным аналогично этому:

upstream api {
   # Assuming this nginx container can access 127.0.0.1:5000
   server 127.0.0.1:3000;
   server server2.local.io:3000;
}

upstream booking {
   # Assuming this nginx container can access 127.0.0.1:5000
   server 127.0.0.1:5000;
   server server2.local.io:5000;
}

server {
    name api.local.io;
    location / {
        proxy_pass http://api;
    }
}

server {
    name booking.local.io;
    location / {
        proxy_pass http://booking;
    }
}
person Rico    schedule 02.10.2015
comment
Хорошо, у меня есть это в моем контейнере hhvm, есть эта строка: - ./hhvm/application:/usr/share/nginx/html как я могу сказать контейнеру nginx, эй, порт 80 для этого сайта, посмотрите на 127.0.0.1:9000, потому что я открыл порт 9000 hhvm для nginx - person bdart; 05.10.2015
comment
Это мне очень помогает. Спасибо. - person Development FlazHost; 11.07.2021