Muatkan Baki dengan Docker

Semasa menjalankan aplikasi web, biasanya anda ingin memanfaatkan sepenuhnya sumber anda tanpa perlu menukar perisian anda untuk menggunakan gelung multithreading atau peristiwa yang kompleks. Docker, bagaimanapun, menyediakan cara mudah bagi anda untuk memuatkan keseimbangan aplikasi anda secara dalaman untuk memanfaatkan sepenuhnya sumber pelayan. Artikel ini akan menunjukkan kepada anda cara menggunakan Nginx untuk memuatkan keseimbangan aplikasi web anda menggunakan Docker di CentOS.

Langkah 1: Buat aplikasi mudah

Kami akan menggunakan karat untuk membina aplikasi sederhana ini. Dengan andaian bahawa anda telah memasang karat, jalankan cargo new webapp –bin. Setelah berjaya, anda akan melihat direktori yang dipanggil webapp. Di dalamnya webapp, anda akan melihat fail yang dipanggil Cargo.toml. Lampirkan baris berikut kepadanya:

[dependencies.iron]
version = "*"

Seterusnya, di dalam src/main.rsfail, hapus semuanya dan isikan dengan yang berikut:

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();
}

Catatan: Jangan ubah IP dalam aplikasi. Ini dikonfigurasikan supaya Docker dapat mendengar aplikasi anda.

Setelah selesai, kompilasi aplikasi dengan melaksanakan cargo build –release. Bergantung pada pelayan anda, mungkin memerlukan beberapa minit. Sekiranya tidak ada kesalahan, uji aplikasi dengan mengikuti langkah-langkah berikut:

  • Lari target/release/webapp.
  • Navigasi ke http://0.0.0.0:3000/dalam penyemak imbas anda. Ganti 0.0.0.0dengan alamat IP pelayan anda.

Sekiranya semuanya berfungsi dengan baik, anda akan melihat "Hello Vultr :)" di halaman.

Langkah 2: Buat bekas Docker

Buat Dockerfiledan isi dengan yang berikut:

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

Simpan fail. Kemudian buat fail yang dipanggil deploy.shdan isi dengan yang berikut:

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

Apabila anda menjalankan skrip ini, ia akan membina gambar dan menyebarkan wadah berdasarkan jumlah yang telah anda tetapkan (lalai adalah 5). Sekiranya bekas itu ada, ia akan mematikan dan membuangnya dari pendaftaran sebelum dikerahkan lagi.

Langkah 3: Konfigurasikan Nginx

Sekarang, buat fail konfigurasi Nginx dan isi dengan yang berikut:

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;
    }
}

Ganti 0.0.0.0dengan alamat IP pelayan anda.

Mulakan semula Nginx dengan melakukan systemctl restart nginx. Selesaikan sebarang kesilapan, kemudian teruskan ke langkah seterusnya.

Langkah 4: Sebarkan aplikasi

Sebarkan aplikasi dengan menjalankan bash ./deploy.sh.

Anda boleh menyemak status aplikasi anda docker ps- akan ada 5 gambar yang dibuat bermula webapp. Sekarang, arahkan ke http://0.0.0.0:3000/penyemak imbas anda, anda akan melihat semula mesej "Hello, Vultr :)".

Oleh itu, apa perbezaannya?

Sekiranya anda menjalankan ujian penanda aras terhadap konfigurasi load balancer, anda akan menyedari bahawa lebih banyak sumber pelayan anda sedang digunakan, itulah yang anda mahukan, terutamanya jika aplikasi anda dibina dalam bahasa seperti Node di mana ia biasanya berulir tunggal. Sekiranya anda perlu meningkatkan aplikasi anda, anda boleh melakukannya dan jalankan semula deploy.shuntuk membina semula gambar dan menggunakan bekas anda.



Leave a Comment

Terapkan Kubernetes Dengan Kubeadm di CentOS 7

Terapkan Kubernetes Dengan Kubeadm di CentOS 7

Gambaran Keseluruhan Artikel ini dimaksudkan untuk membantu anda mendapatkan cluster Kubernet dan berjalan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua pelayan, di

Pasang Docker CE pada Ubuntu 18.04

Pasang Docker CE pada Ubuntu 18.04

Pengenalan Docker adalah aplikasi yang memungkinkan kita menyebarkan program yang dijalankan sebagai wadah. Ia ditulis dalam bahasa pengaturcaraan Go yang popular

Buat Docker Swarm pada Alpine Linux 3.9.0

Buat Docker Swarm pada Alpine Linux 3.9.0

Pendahuluan Panduan ini akan menunjukkan kepada anda cara membuat dan mengkonfigurasi kawanan Docker menggunakan beberapa pelayan Alpine Linux 3.9.0 dan Portainer. Harap maklum tha

Pasang Rancher pada Ubuntu 16.04

Pasang Rancher pada Ubuntu 16.04

Menggunakan Sistem Berbeza? Pengenalan Rancher adalah platform sumber terbuka untuk menjalankan kontena dan membina perkhidmatan kontena peribadi. Rancher adalah asas

Memasang komposisi dok pada CoreOS

Memasang komposisi dok pada CoreOS

Artikel ini menerangkan cara memasang docker-compose pada CoreOS. Di CoreOS, folder / usr / tidak berubah sehingga jalan standard / usr / local / bin tidak tersedia

Pada CoreOS, Sediakan Docker Registry Anda Sendiri

Pada CoreOS, Sediakan Docker Registry Anda Sendiri

Kita semua tahu dan menyukai Docker, platform untuk membuat, mengurus dan mengedarkan bekas aplikasi di pelbagai mesin. Docker Inc. menyediakan perkhidmatan t

Pasang Rancher di CentOS 7

Pasang Rancher di CentOS 7

Menggunakan Sistem Berbeza? Pengenalan Rancher adalah platform sumber terbuka untuk menjalankan kontena dan membina perkhidmatan kontena peribadi. Rancher adalah asas

Sesi Sticky Dengan Swarm Docker (CE) pada CentOS 7

Sesi Sticky Dengan Swarm Docker (CE) pada CentOS 7

Menggunakan Sistem Berbeza? Pengenalan Docker Swarm menukarkan pelayan individu anda ke dalam kumpulan komputer, memudahkan scaling, ketersediaan tinggi

Memasang Docker di CentOS 7

Memasang Docker di CentOS 7

Menggunakan Sistem yang berbeza? Docker adalah aplikasi yang memungkinkan penggunaan perisian dalam wadah maya. Ia ditulis dalam program Go

Pasang Rancher Server di RancherOS

Pasang Rancher Server di RancherOS

Gambaran Keseluruhan RancherOS adalah sistem operasi yang sangat ringan (hanya sekitar 60 MB) yang menjalankan sistem Docker daemon sebagai PID 0 untuk menjalankan sistem perkhidmatan

Sesi Melekit Dengan Docker Swarm (CE) di Debian 9

Sesi Melekit Dengan Docker Swarm (CE) di Debian 9

Menggunakan Sistem Berbeza? Pengenalan Docker Swarm menukarkan pelayan individu anda ke dalam kumpulan komputer; memudahkan penskalaan, ketersediaan tinggi dan

Cara Menggunakan Docker: Membuat Bekas Docker Pertama Anda

Cara Menggunakan Docker: Membuat Bekas Docker Pertama Anda

Tutorial ini menerangkan asas-asas untuk memulakan Docker. Saya menganggap bahawa anda sudah memasang Docker. Langkah-langkah dalam tutorial ini akan berfungsi pada

Mulakan Dengan SQL Server 2017 (MS-SQL) di CentOS 7 With Docker

Mulakan Dengan SQL Server 2017 (MS-SQL) di CentOS 7 With Docker

Prasyarat enjin Docker 1.8+. Minimum ruang cakera 4GB. Minimum RAM 4GB. Langkah 1. Pasang Docker Untuk memasang SQL-Server, Docker mus

Memasang Docker CE pada Debian 9

Memasang Docker CE pada Debian 9

Menggunakan Sistem Berbeza? Pengenalan Docker adalah aplikasi yang memungkinkan penggunaan perisian dalam wadah maya. Ia ditulis dalam G

Memasang Docker di Ubuntu 14.04

Memasang Docker di Ubuntu 14.04

Menggunakan Sistem yang berbeza? Docker adalah aplikasi yang memungkinkan untuk menyebarkan program yang dijalankan sebagai wadah. Ia ditulis dalam program Go yang popular

Terapkan Aplikasi Node.js Menggunakan Docker

Terapkan Aplikasi Node.js Menggunakan Docker

Artikel ini akan menunjukkan kepada anda cara menyebarkan aplikasi Node anda dalam wadah Docker. Catatan: Tutorial ini mengandaikan bahawa anda telah memasang dan membaca Docker

Persediaan Sentry melalui Docker di Ubuntu 16.04

Persediaan Sentry melalui Docker di Ubuntu 16.04

Menggunakan Sistem Berbeza? Pengenalan Sentry adalah penyelesaian sumber terbuka untuk pengesanan ralat. Sentry menjejaki pengecualian dan mesej berguna lain dari sana

Cara Memasang Harbour di CentOS 7

Cara Memasang Harbour di CentOS 7

Harbour adalah pelayan pendaftaran kelas perusahaan sumber terbuka yang menyimpan dan menyebarkan gambar Docker. Harbour memperluas sumber terbuka Docker Distribution b

Pasang Rancher OS melalui iPXE

Pasang Rancher OS melalui iPXE

Rancher OS adalah sebaran Linux yang sangat ringan yang dibina di sekitar Docker. OS itu sendiri mempunyai berat sekitar 20MB. Tutorial ini akan membuatkan anda dapat menggunakannya

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut