Muat Saldo dengan Docker

Saat menjalankan aplikasi web, Anda biasanya ingin memaksimalkan sumber daya Anda tanpa harus mengonversi perangkat lunak Anda untuk menggunakan multithreading atau loop acara kompleks. Docker, bagaimanapun, memang menyediakan cara sederhana bagi Anda untuk memuat keseimbangan aplikasi Anda secara internal untuk memaksimalkan sumber daya server. Artikel ini akan menunjukkan kepada Anda bagaimana menggunakan Nginx untuk memuat keseimbangan aplikasi web Anda menggunakan Docker di CentOS.

Langkah 1: Buat aplikasi sederhana

Kami akan menggunakan karat untuk membangun aplikasi sederhana ini. Dengan asumsi bahwa Anda telah menginstal karat, jalankan cargo new webapp –bin. Setelah berhasil, Anda akan melihat direktori bernama webapp. Di dalam webapp, Anda akan melihat file bernama Cargo.toml. Tambahkan baris berikut untuk itu:

[dependencies.iron]
version = "*"

Selanjutnya, di dalam src/main.rsfile, hapus semua dan isi 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 mengubah IP dalam aplikasi. Ini dikonfigurasikan agar Docker dapat mendengarkan aplikasi Anda.

Setelah selesai, kompilasi aplikasi dengan mengeksekusi cargo build –release. Tergantung pada server Anda, mungkin perlu beberapa menit. Jika tidak ada kesalahan, uji aplikasi dengan mengikuti langkah-langkah ini:

  • Lari target/release/webapp.
  • Arahkan ke http://0.0.0.0:3000/dalam browser Anda. Ganti 0.0.0.0dengan alamat IP server Anda.

Jika semuanya berfungsi dengan baik, Anda akan melihat "Halo Vultr :)" di halaman.

Langkah 2: Buat wadah Docker

Buat Dockerfiledan isi dengan yang berikut ini:

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

Simpan file. Kemudian buat file 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

Ketika Anda menjalankan skrip ini, itu akan membangun gambar dan menggunakan wadah berdasarkan jumlah yang telah Anda tetapkan (standarnya adalah 5). Jika wadah ada, itu akan membunuh dan menghapusnya dari registri sebelum digunakan lagi.

Langkah 3: Konfigurasikan Nginx

Sekarang, buat file 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 server Anda.

Mulai ulang Nginx dengan melakukan systemctl restart nginx. Selesaikan kesalahan apa pun, lalu lanjutkan ke langkah berikutnya.

Langkah 4: Menyebarkan aplikasi

Menyebarkan aplikasi dengan menjalankan bash ./deploy.sh.

Anda dapat memeriksa status aplikasi Anda dengan docker ps- akan ada 5 gambar yang dibuat yang dimulai dengan webapp. Sekarang, navigasikan ke http://0.0.0.0:3000/dalam browser Anda, Anda akan melihat pesan "Halo, Vultr :)" lagi.

Jadi, apa bedanya ini, tepatnya?

Jika Anda menjalankan tes benchmark terhadap konfigurasi load balancer, Anda akan melihat bahwa lebih banyak sumber daya server Anda sedang digunakan, dan itulah yang Anda inginkan, terutama jika aplikasi Anda dibuat dalam bahasa seperti Node di mana biasanya satu threaded. Jika Anda perlu meningkatkan aplikasi Anda, Anda dapat melakukannya dan jalankan deploy.shkembali untuk membangun kembali gambar dan menggunakan wadah Anda.



Leave a Comment

Menyebarkan Kubernet Dengan Kubeadm di CentOS 7

Menyebarkan Kubernet Dengan Kubeadm di CentOS 7

Ikhtisar Artikel ini dimaksudkan untuk membantu Anda mendapatkan kluster Kubernet dan menjalankan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua server, pada

Instal OS Rancher melalui iPXE

Instal OS Rancher melalui iPXE

Rancher OS adalah distribusi Linux yang sangat ringan yang dibangun di sekitar Docker. OS itu sendiri berbobot sekitar 20MB. Tutorial ini akan membantu Anda menjalankan dan menjalankannya

Instal Docker CE di Ubuntu 18.04

Instal Docker CE di Ubuntu 18.04

Pendahuluan Docker adalah aplikasi yang memungkinkan kita untuk menyebarkan program yang dijalankan sebagai wadah. Itu ditulis dalam bahasa pemrograman Go populer

Menginstal Docker pada CentOS 7

Menginstal Docker pada CentOS 7

Menggunakan Sistem yang Berbeda? Docker adalah aplikasi yang memungkinkan untuk penyebaran perangkat lunak dalam wadah virtual. Itu ditulis dalam programmin Go

Cara Memasang Harbour pada CentOS 7

Cara Memasang Harbour pada CentOS 7

Harbor adalah server registri sumber terbuka kelas perusahaan yang menyimpan dan mendistribusikan gambar Docker. Harbor memperluas distribusi Docker sumber terbuka b

Menginstal docker-compose di CoreOS

Menginstal docker-compose di CoreOS

Artikel ini menjelaskan cara menginstal docker-compose di CoreOS. Di CoreOS, folder / usr / tidak dapat diubah sehingga jalur standar / usr / local / bin tidak tersedia untuk

Instal Rancher di CentOS 7

Instal Rancher di CentOS 7

Menggunakan Sistem yang Berbeda? Pendahuluan Rancher adalah platform sumber terbuka untuk menjalankan kontainer dan membangun layanan kontainer pribadi. Peternak adalah pangkalan

Instal Rancher di Ubuntu 16.04

Instal Rancher di Ubuntu 16.04

Menggunakan Sistem yang Berbeda? Pendahuluan Rancher adalah platform sumber terbuka untuk menjalankan kontainer dan membangun layanan kontainer pribadi. Peternak adalah pangkalan

Menyebarkan Aplikasi PHP Menggunakan Docker-compose

Menyebarkan Aplikasi PHP Menggunakan Docker-compose

Aplikasi PHP biasanya disusun oleh server web, sistem basis data relasional dan juru bahasa itu sendiri. Dalam tutorial ini kita akan menjadi leveragin

Sticky Session With Docker Swarm (CE) pada Debian 9

Sticky Session With Docker Swarm (CE) pada Debian 9

Menggunakan Sistem yang Berbeda? Pendahuluan Docker Swarm mengubah masing-masing server Anda menjadi sekelompok komputer; memfasilitasi penskalaan, ketersediaan tinggi an

Dua Alat Pengelola Grafis Docker: DockerUI dan Galangan Kapal

Dua Alat Pengelola Grafis Docker: DockerUI dan Galangan Kapal

Dengan bantuan aplikasi Vultr Docker, Anda dapat dengan mudah menggunakan Docker pada instance server Vultr Anda. Sementara itu, Anda dapat memfasilitasi tugas mengelola Docker

Pada CoreOS, Atur Registri Docker Anda Sendiri

Pada CoreOS, Atur Registri Docker Anda Sendiri

Kita semua tahu dan cinta Docker, sebuah platform untuk membuat, mengelola, dan mendistribusikan kontainer aplikasi di beberapa mesin. Docker Inc. menyediakan layanan t

Setup Sentry via Docker di Ubuntu 16.04

Setup Sentry via Docker di Ubuntu 16.04

Menggunakan Sistem yang Berbeda? Pendahuluan Sentry adalah solusi open source untuk pelacakan kesalahan. Sentry melacak pengecualian dan pesan berguna lainnya

Instal Server Rancher di RancherOS

Instal Server Rancher di RancherOS

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

Memulai dengan Kubernetes di CentOS 7

Memulai dengan Kubernetes di CentOS 7

Kubernetes adalah platform sumber terbuka yang dikembangkan oleh Google untuk mengelola aplikasi kemas di sekelompok server. Itu dibangun di atas satu dekade dan

Sticky Session With Docker Swarm (CE) pada CentOS 7

Sticky Session With Docker Swarm (CE) pada CentOS 7

Menggunakan Sistem yang Berbeda? Pendahuluan Docker Swarm mengubah masing-masing server Anda menjadi sekelompok komputer, memfasilitasi penskalaan, ketersediaan tinggi dan

Cara Menggunakan Docker: Membuat Kontainer Docker Pertama Anda

Cara Menggunakan Docker: Membuat Kontainer Docker Pertama Anda

Tutorial ini menjelaskan dasar-dasar memulai Docker. Saya berasumsi bahwa Anda sudah menginstal Docker. Langkah-langkah dalam tutorial ini akan bekerja pada sebuah

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

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

Prasyarat Mesin Docker 1.8+. Minimal 4GB ruang disk. Minimal RAM 4GB. Langkah 1. Instal Docker Untuk menginstal SQL-Server, Docker mus

Menyebarkan Aplikasi Node.js Menggunakan Docker

Menyebarkan Aplikasi Node.js Menggunakan Docker

Artikel ini akan menunjukkan kepada Anda bagaimana menyebarkan aplikasi Node Anda dalam wadah Docker. Catatan: Tutorial ini mengasumsikan bahwa Anda telah menginstal dan membaca Docker

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut