Docker помага на уеб разработчиците да пуснат своите приложения онлайн без грешки.
Въпреки че е интуитивен и лесен за използване Docker за разработка, използването на Docker в производствени сървъри е изпълнено с проблеми.
Тук, в Bobcares.com, ние помагаме на уеб разработчиците и специалистите по дигитален маркетинг да настроят и поддържат сървъри за уеб хостинг, базирани на Docker.
И често срещано предизвикателство, което разрешаваме, е: „Как да използваме един сървър за стартиране на няколкостотин сайта, работещи на Docker контейнери.“
Уебсайтовете слушат порт 80, за да получават заявки и да обслужват страници.
Така че всеки Docker контейнер на уебсайт има отворен порт 80.
Хостът Docker обаче има само един порт 80 и може да получава заявки само за един от тези контейнери.
Docker може да бъде конфигуриран да свързва всеки контейнер към отделни сървърни портове. За напр. свържете порт 80 на Docker 1 към сървърен порт 8080, Docker 2 към 8081 и т.н.
Но тъй като браузърите по подразбиране ще се свързват към порт 80, а не 8080 или 8081, тези сайтове няма да се виждат.
Обратният прокси е програма, която приема връзки на порт 80 и ги изпраща към един или повече сървъри в задната част.
Така че, ако можем да поставим обратен прокси да слуша на 80 и да го накараме да разделя трафика въз основа на имена на домейни, можем да хостваме множество домейни само с един порт 80.
Има много обратни проксита като HAProxy, Nginx и Varnish.
За повечето цели за уеб хостинг, базирани на Docker, открихме, че контейнерите на Nginx са подходящи.
Има 3 части за настройка на Nginx шлюз:
Стартирайте Nginx контейнер Направете конфигурационните файлове на Nginx редактируеми чрез том Конфигурирайте Nginx за свързване към вътрешния IP адрес на уебсайта1. Свържете порт 80 и 443 на хоста Docker към контейнера NignxЗа да действа Nginx като шлюз, той трябва да има контрол над HTTP и HTTPS портовете на хост сървъра на Docker.
За да го зададете, настройте файл за съставяне на докер с директивата „ports“ по следния начин:
http-gateway:име на контейнер: http-rev-proximage: jwilder/nginx-proxyports:- '80:80'- '443:443'
В зависимост от нуждите на вашия уебсайт и моделите на трафик може да имате нужда от допълнителни настройки като „CLIENT_MAX_BODY_SIZE“ и „PROXY_READ_TIMEOUT“, зададени в директивата „околна среда“.
2. Направете конфигурационния файл на Nginx редактируем извън контейнера
Някои от нашите клиенти имат Docker сървъри, които съдържат стотици сайтове.
В тези сървъри ние добавяме, променяме и премахваме уебсайтове доста редовно.
За това е важно да можете да редактирате конфигурационния файл на Nginx, без да се налага да създавате повторно изображението на Nginx.
Използваме Docker Volumes за това, където конфигурационната папка на Nginx „/etc/nginx/conf.d/“ е монтирана във външна директория като „/usr/docker/nginx/conf.d“.
Настройките на Docker Composer изглеждат така:
томове:- /usr/docker/nginx/conf.d:/etc/nginx/conf.d/:rw
Имайте предвид, че това е само част от големия файл за композиране. За напълно функционален шлюз ще трябва да добавите допълнителни настройки като SSL директория, местоположение на Docker сокет и т.н.
Щракнете тук за помощ от експерт Docker.
3. Конфигурирайте Nginx за свързване на заявки към сайт към частния IP на контейнера на сайта
Сега, когато имаме конфигурационни файлове на Nginx в място, което може да се редактира, създайте конфигурационни файлове за всеки сайт с директива „proxy_pass“, за да свържете частния IP на сайта към Nginx.
Напр. конфигурационният файл на домейн (да речем mydomain.com) може да изглежда по следния начин:
местоположение / {proxy_pass http://10.1.2.3:80;proxy_set_header Хост $хост;}
В този момент Nginx слуша порт 80 и препраща всички заявки, идващи към mydomain.com, към своя вътрешен IP 10.1.2.3.
Стъпките, които споменахме тук, са само схема, която засяга основните фактори, за да работи това.
Дребните детайли са пропуснати, за да остане обектът фокусиран.
Но в действителна производствена среда може да има стотици малки проблеми, които могат да повлияят на качеството на хостинга.
Може да варира от настройка на ограничения на ресурсите & SSL за грешки като изтичане на конфигурация & объркване на протоколи.
Така че, ако се опитвате да настроите това от нулата, бихме ви препоръчали да говорите с експерт по Docker, за да го настроите точно според вашите изисквания.
Нашите Docker експерти са онлайн 24/7 и могат да ви се притекат на помощ в рамките на минути. Щракнете тук, за да отворите заявка за поддръжка.
Docker позволява само обвързване на порт 1 към 1, което не позволява на множество Docker контейнери да използват един и същ порт на главния сървър (Docker хост). Тук обсъдихме как да използваме обратен прокси за отклоняване на заявки към много домейни през един HTTP порт в хоста на Docker.
Никога повече не губете клиенти заради ниската скорост на сървъра! Нека ви помогнем.
Нашите сървърни експерти ще наблюдават & поддържайте вашия сървър 24/7, така че да остане светкавично бърз и сигурен.
ВИЖТЕ АДМИНИСТРАТИВНИТЕ ПЛАНОВЕ НА СЪРВЪРА
var google_conversion_label = "owonCMyG5nEQ0aD71QM";
PREV: 14 предимства и недостатъци на виртуализацията – Vittana.org