Υπόλοιπο φόρτωσης με Docker

Όταν εκτελείτε μια εφαρμογή Ιστού, συνήθως θέλετε να αξιοποιήσετε στο έπακρο τους πόρους σας χωρίς να χρειάζεται να μετατρέψετε το λογισμικό σας για χρήση πολυνηματικών ή πολύπλοκων βρόχων συμβάντων. Το Docker, ωστόσο, παρέχει έναν απλό τρόπο για να φορτώσετε την ισορροπία της εφαρμογής σας εσωτερικά για να αξιοποιήσετε στο έπακρο τους πόρους του διακομιστή. Αυτό το άρθρο θα σας δείξει πώς να χρησιμοποιήσετε το Nginx για να φορτώσετε την ισορροπία της εφαρμογής Ιστού σας χρησιμοποιώντας το Docker στο CentOS.

Βήμα 1: Δημιουργήστε μια απλή εφαρμογή

Θα χρησιμοποιήσουμε τη σκουριά για να φτιάξουμε αυτήν την απλή εφαρμογή. Υποθέτοντας ότι έχετε εγκαταστήσει τη σκουριά, εκτελέστε το cargo new webapp –bin. Μετά την επιτυχία, θα δείτε έναν κατάλογο που ονομάζεται webapp. Μέσα στο webapp, θα δείτε ένα αρχείο που ονομάζεται Cargo.toml. Προσθέστε τις ακόλουθες γραμμές σε αυτό:

[dependencies.iron]
version = "*"

Στη συνέχεια, μέσα στο src/main.rsαρχείο, αφαιρέστε τα πάντα και συμπληρώστε το με τα εξής:

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

Σημείωση: Μην αλλάζετε την IP εντός της εφαρμογής. Αυτό έχει ρυθμιστεί έτσι ώστε το Docker να μπορεί να ακούσει την εφαρμογή σας.

Μόλις ολοκληρώσετε, μεταγλωττίστε την εφαρμογή εκτελώντας cargo build –release. Ανάλογα με τον διακομιστή σας, μπορεί να χρειαστούν μερικά λεπτά. Εάν δεν υπάρχουν σφάλματα, δοκιμάστε την εφαρμογή ακολουθώντας αυτά τα βήματα:

  • Τρέξε target/release/webapp.
  • Πλοηγηθείτε στο http://0.0.0.0:3000/στο πρόγραμμα περιήγησής σας. Αντικαταστήστε 0.0.0.0με τη διεύθυνση IP του διακομιστή σας.

Εάν όλα λειτουργούσαν σωστά, θα δείτε το "Hello Vultr :)" στη σελίδα.

Βήμα 2: Δημιουργήστε κοντέινερ Docker

Δημιουργήστε ένα Dockerfileκαι συμπληρώστε το με τα εξής:

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

Αποθηκεύστε το αρχείο. Στη συνέχεια, δημιουργήστε ένα αρχείο που ονομάζεται deploy.shκαι συμπληρώστε το με τα εξής:

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

Όταν εκτελείτε αυτό το σενάριο, θα δημιουργήσει την εικόνα και θα αναπτύξει το κοντέινερ με βάση το ποσό που έχετε ορίσει (η προεπιλογή είναι 5). Εάν το κοντέινερ υπάρχει, θα σκοτώσει και θα το καταργήσει από το μητρώο προτού αναπτυχθεί ξανά.

Βήμα 3: Διαμορφώστε το Nginx

Τώρα, δημιουργήστε ένα αρχείο διαμόρφωσης Nginx και συμπληρώστε το με τα εξής:

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.0με τη διεύθυνση IP του διακομιστή σας.

Επανεκκινήστε το Nginx κάνοντας systemctl restart nginx. Επιλύστε τυχόν σφάλματα και, στη συνέχεια, προχωρήστε στο επόμενο βήμα.

Βήμα 4: Ανάπτυξη εφαρμογής

Αναπτύξτε την εφαρμογή εκτελώντας bash ./deploy.sh.

Μπορείτε να ελέγξετε την κατάσταση της αίτησής σας με docker ps- θα δημιουργηθούν 5 εικόνες που ξεκινούν με webapp. Τώρα, μεταβείτε http://0.0.0.0:3000/στο πρόγραμμα περιήγησής σας, θα δείτε ξανά το μήνυμα "Hello, Vultr :)".

Λοιπόν, τι διαφορά έχει αυτό ακριβώς;

Εάν εκτελέσετε μια δοκιμή αναφοράς σε σχέση με τη διαμόρφωση του εξισορροπητή φορτίου, θα παρατηρήσετε ότι χρησιμοποιούνται περισσότεροι από τους πόρους του διακομιστή σας, κάτι που θα θέλατε, ειδικά εάν η εφαρμογή σας είναι ενσωματωμένη σε γλώσσες όπως το Node, όπου κανονικά θα ήταν μονού νήματος. Εάν χρειαστεί ποτέ να αναβαθμίσετε την εφαρμογή σας, μπορείτε να το κάνετε και να το επαναλάβετε deploy.shγια να δημιουργήσετε ξανά την εικόνα και να αναπτύξετε τα κοντέινερ σας.

Αφήστε ένα σχόλιο

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα