Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
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.
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.rs
fail, 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:
target/release/webapp
.http://0.0.0.0:3000/
dalam penyemak imbas anda. Ganti 0.0.0.0
dengan alamat IP pelayan anda.Sekiranya semuanya berfungsi dengan baik, anda akan melihat "Hello Vultr :)" di halaman.
Buat Dockerfile
dan 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.sh
dan 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.
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.0
dengan alamat IP pelayan anda.
Mulakan semula Nginx dengan melakukan systemctl restart nginx
. Selesaikan sebarang kesilapan, kemudian teruskan ke langkah seterusnya.
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.sh
untuk membina semula gambar dan menggunakan bekas anda.
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
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'.
Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.
Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.
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 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?
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.
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!
Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.
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