Docker ile Yük Dengesi

Bir web uygulaması çalıştırırken, yazılımınızı çok iş parçacıklı veya karmaşık olay döngülerini kullanmak üzere dönüştürmek zorunda kalmadan normalde kaynaklarınızdan en iyi şekilde yararlanmak istersiniz. Ancak Docker, sunucu kaynaklarından en iyi şekilde yararlanmak için uygulamanızı dahili olarak dengelemeniz için basit bir yol sağlar. Bu makale, CentOS'ta Docker kullanarak web uygulamanızı dengelemek için Nginx'in nasıl kullanılacağını gösterecektir.

1. Adım: Basit bir uygulama oluşturun

Bu basit uygulamayı oluşturmak için pas kullanacağız. Pas yüklü olduğunu varsayarak, çalıştırın cargo new webapp –bin. Başarılı olduğunuzda, adlı bir dizin göreceksiniz webapp. İçinde, webappadlı bir dosya göreceksiniz Cargo.toml. Aşağıdaki satırları ekleyin:

[dependencies.iron]
version = "*"

Ardından, src/main.rsdosyanın içinde her şeyi kaldırın ve aşağıdakilerle doldurun:

extern crate iron;

use iron::prelude::*;
use iron::status;

fn main() {
    Iron::new(|_: &mut Request| {
        Ok(Response::with((status::Ok, "Hello Vultr :)")))
    }).http("0.0.0.0:3000").unwrap();
}

Not: Uygulama içindeki IP'yi değiştirmeyin. Bu, Docker'ın uygulamanızı dinleyebileceği şekilde yapılandırılmıştır.

İşiniz bittiğinde, uygulamayı yürüterek derleyin cargo build –release. Sunucunuza bağlı olarak, birkaç dakika sürebilir. Hata yoksa, aşağıdaki adımları izleyerek uygulamayı test edin:

  • Koş target/release/webapp.
  • http://0.0.0.0:3000/Tarayıcınızda adresine gidin . 0.0.0.0Sunucunuzun IP adresiyle değiştirin .

Her şey düzgün çalıştıysa, sayfada "Hello Vultr :)" ifadesini görürsünüz.

2. Adım: Docker kapsayıcıları oluşturma

A oluşturun Dockerfileve aşağıdakilerle doldurun:

FROM centos:latest
MAINTAINER User <user@localhost>
RUN yum update -y
COPY ./webapp/target/release/webapp /opt/
EXPOSE 3000
WORKDIR /opt
CMD ./webapp

Dosya 'yı kaydet. Ardından adlı bir dosya oluşturun deploy.shve aşağıdakilerle doldurun:

DEFAULT_PORT=45710
APP_PORT=3000
DEPLOY=5
NAME="webapp"
docker build -t webapp:example . 

for ((i=0; i<DEPLOY; i++)); do
        docker kill $NAME$i ; docker rm $NAME$i
        docker run --name $NAME$i -p 127.0.0.1:$(((i * 1000) + DEFAULT_PORT)):$APP_PORT -d webapp:example
done

Bu komut dosyasını çalıştırdığınızda, görüntüyü oluşturur ve kapsayıcıyı ayarladığınız miktara göre dağıtır (varsayılan değer 5'tir). Kap varsa, yeniden dağıtılmadan önce onu öldürür ve kayıt defterinden kaldırır.

3. Adım: Nginx'i yapılandırın

Şimdi, bir Nginx yapılandırma dosyası oluşturun ve aşağıdakilerle doldurun:

upstream application {
    server localhost:45710;
    server localhost:46710;
    server localhost:47710;
    server localhost:48710;
    server localhost:49710;
}

server {
    listen 0.0.0.0:80;    
    location / {
    expires 1w;
        proxy_pass http://application;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

0.0.0.0Sunucunuzun IP adresiyle değiştirin .

Nginx'i yaparak yeniden başlatın systemctl restart nginx. Hataları giderin, ardından bir sonraki adıma geçin.

4. Adım: Uygulamayı dağıtın

Uygulamayı çalıştırarak dağıtın bash ./deploy.sh.

Uygulamanızın durumunu ile kontrol edebilirsiniz docker ps- ile başlayan 5 resim olacaktır webapp. Şimdi http://0.0.0.0:3000/tarayıcınıza gidin , tekrar "Merhaba, Vultr :)" mesajını göreceksiniz.

Peki, bu tam olarak ne fark eder?

Yük dengeleyici yapılandırmasına karşı bir karşılaştırma testi uygularsanız, özellikle uygulamanız normalde tek iş parçacıklı olacağı Düğüm gibi dillerde oluşturulmuşsa, daha fazla sunucu kaynağınızın kullanıldığını fark edersiniz. Uygulamanızı yükseltmeniz gerektiğinde deploy.sh, görüntüyü yeniden oluşturmak ve kapsayıcılarınızı dağıtmak için bunu yeniden çalıştırabilirsiniz .



Leave a Comment

KubOSM ile Kubernetesi CentOS 7de dağıtın

KubOSM ile Kubernetesi CentOS 7de dağıtın

Genel Bakış Bu makale, bir Kubernetes kümesini hemen kurup kubeadm ile çalıştırmanıza yardımcı olmak içindir. Bu kılavuz iki sunucuyu

Rancher OSyi iPXE üzerinden yükleme

Rancher OSyi iPXE üzerinden yükleme

Rancher OS, Docker etrafında inşa edilmiş çok hafif bir Linux dağıtımıdır. İşletim sisteminin kendisi yaklaşık 20 MB ağırlığında. Bu eğitici ile birlikte çalışmaya başlayacaksınız

Ubuntu 18.04e Docker CEyi yükleyin

Ubuntu 18.04e Docker CEyi yükleyin

Giriş Docker, kapsayıcı olarak çalıştırılan programları dağıtmamızı sağlayan bir uygulamadır. Popüler Go programlama dilinde yazılmıştır

Alpine Linux 3.9.0da bir Docker Sürüsü oluşturma

Alpine Linux 3.9.0da bir Docker Sürüsü oluşturma

Giriş Bu kılavuz, birden fazla Alpine Linux 3.9.0 sunucusu ve Portainer kullanarak bir Docker sürüsü oluşturmayı ve yapılandırmayı gösterecektir. Lütfen unutmayın

Docker-compose Kullanarak PHP Uygulaması Dağıtma

Docker-compose Kullanarak PHP Uygulaması Dağıtma

PHP uygulamaları genellikle bir web sunucusu, ilişkisel veritabanı sistemi ve dil yorumlayıcısının kendisinden oluşur. Bu derste leveragin olacağız

Dockerı CentOS 7ye yükleme

Dockerı CentOS 7ye yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Docker, sanal kapsayıcılara yazılım dağıtımına izin veren bir uygulamadır. Go programında yazıldı

CentOS 7 Üzerinde Liman Kurulumu

CentOS 7 Üzerinde Liman Kurulumu

Harbor, Docker görüntülerini depolayan ve dağıtan açık kaynaklı, kurumsal sınıf bir kayıt defteri sunucusudur. Liman, açık kaynaklı Docker Dağıtımını genişletiyor b

CoreOSa docker-compose kurulumu

CoreOSa docker-compose kurulumu

Bu makalede, docker-composeun CoreOSa nasıl yükleneceği açıklanmaktadır. CoreOSta / usr / klasörü değiştirilemez, bu nedenle standart / usr / local / bin yolu kullanılamaz.

Rancherı CentOS 7ye yükleyin

Rancherı CentOS 7ye yükleyin

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Rancher, konteynerleri çalıştırmak ve özel bir konteyner servisi oluşturmak için açık kaynaklı bir platformdur. Çiftlik temelidir

Rancherı Ubuntu 16.04e yükleyin

Rancherı Ubuntu 16.04e yükleyin

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Rancher, konteynerleri çalıştırmak ve özel bir konteyner servisi oluşturmak için açık kaynaklı bir platformdur. Çiftlik temelidir

Debian 9 Docker Swarm (CE) ile Yapışkan Oturum

Debian 9 Docker Swarm (CE) ile Yapışkan Oturum

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Docker Swarm, bireysel sunucularınızı bir bilgisayar kümesine dönüştürür; ölçeklendirme, yüksek kullanılabilirlik ve

İki Docker Grafik Yönetim Aracı: DockerUI ve Tersane

İki Docker Grafik Yönetim Aracı: DockerUI ve Tersane

Vultr Docker uygulamasının yardımıyla Dockerı Vultr sunucu örneğinize kolayca dağıtabilirsiniz. Bu arada, Docker yönetim görevini kolaylaştırabilirsiniz

CoreOSta Kendi Docker Kayıt Defterinizi Kurun

CoreOSta Kendi Docker Kayıt Defterinizi Kurun

Hepimiz uygulama kaplarını birden çok makineye oluşturmak, yönetmek ve dağıtmak için bir platform olan Dockerı biliyoruz ve seviyoruz. Docker Inc.

Ubuntu 16.04te Docker ile Sentry Kurulumu

Ubuntu 16.04te Docker ile Sentry Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Sentry, hata izleme için açık kaynaklı bir çözümdür. Nöbetçi istisnaları ve diğer yararlı mesajları izler

RancherOS üzerine Rancher Server kurun

RancherOS üzerine Rancher Server kurun

Genel Bakış RancherOS, sistem hizmetlerini çalıştırmak için bir Docker arka plan programı PID 0 olarak çalıştıran inanılmaz derecede hafif bir işletim sistemidir (yalnızca yaklaşık 60 MB).

CentOS 7de Docker Sürüsü (CE) ile Yapışkan Oturum

CentOS 7de Docker Sürüsü (CE) ile Yapışkan Oturum

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Docker Swarm, bireysel sunucularınızı bir bilgisayar kümesine dönüştürerek ölçeklendirmeyi, yüksek kullanılabilirliği ve

Docker Nasıl Kullanılır: İlk Docker Kapsayıcısını Oluşturma

Docker Nasıl Kullanılır: İlk Docker Kapsayıcısını Oluşturma

Bu eğitimde Dockerı kullanmaya başlamanın temelleri açıklanmaktadır. Dockerın kurulu olduğunu varsayıyorum. Bu öğreticideki adımlar,

Docker ile CentOS 7de SQL Server 2017ye (MS-SQL) Başlarken

Docker ile CentOS 7de SQL Server 2017ye (MS-SQL) Başlarken

Önkoşullar Docker motoru 1.8+. Minimum 4GB disk alanı. Minimum 4GB RAM. Adım 1. Dockerı yükleyin SQL-Serverı yüklemek için Docker mus

Docker Kullanarak Bir Node.js Uygulaması Dağıtma

Docker Kullanarak Bir Node.js Uygulaması Dağıtma

Bu makalede, Düğüm uygulamanızı bir Docker kapsayıcısında nasıl dağıtacağınız gösterilecektir. Not: Bu eğiticide Dockerın yüklü ve okunmuş olduğu varsayılmaktadır

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun