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

Υπόλοιπο φόρτωσης με 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για να δημιουργήσετε ξανά την εικόνα και να αναπτύξετε τα κοντέινερ σας.


Δείτε πώς μπορείτε να ελέγξετε τα κοντέινερ Hyper-V στο Windows 10 Insider

Δείτε πώς μπορείτε να ελέγξετε τα κοντέινερ Hyper-V στο Windows 10 Insider

Η Microsoft εξήγησε σε μια νέα ανάρτηση ιστολογίου πώς τα Windows Insiders μπορούν να δοκιμάσουν κοντέινερ Hyper-V στα Windows 10, μια νέα λύση εικονικοποίησης που επιτρέπει στις εφαρμογές να εκτελούνται χωρίς να επηρεάζεται το υπόλοιπο λειτουργικό σας σύστημα.

Πώς να εγκαταστήσετε το Harbor στο CentOS 7

Πώς να εγκαταστήσετε το Harbor στο CentOS 7

Το Harbor είναι ένας διακομιστής μητρώου εταιρικής κλάσης ανοιχτού κώδικα που αποθηκεύει και διανέμει εικόνες Docker. Το Harbour επεκτείνει τη διανομή Docker ανοιχτού κώδικα β

Εγκαταστήστε το Rancher OS μέσω iPXE

Εγκαταστήστε το Rancher OS μέσω iPXE

Το Rancher OS είναι μια πολύ ελαφριά διανομή Linux που βασίζεται στο Docker. Το ίδιο το λειτουργικό σύστημα ζυγίζει περίπου 20MB. Αυτό το σεμινάριο θα σας βάλει σε λειτουργία

Εγκατάσταση του docker-compose στο CoreOS

Εγκατάσταση του docker-compose στο CoreOS

Αυτό το άρθρο εξηγεί πώς να εγκαταστήσετε το docker-compose στο CoreOS. Στο CoreOS, ο φάκελος /usr/ είναι αμετάβλητος, επομένως η τυπική διαδρομή /usr/local/bin δεν είναι διαθέσιμη για

Εγκαταστήστε το Rancher στο CentOS 7

Εγκαταστήστε το Rancher στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το Rancher είναι μια πλατφόρμα ανοιχτού κώδικα για τη λειτουργία κοντέινερ και τη δημιουργία ιδιωτικής υπηρεσίας εμπορευματοκιβωτίων. Το Rancher είναι η βάση

Εγκαταστήστε το Docker CE στο Ubuntu 18.04

Εγκαταστήστε το Docker CE στο Ubuntu 18.04

Εισαγωγή Το Docker είναι μια εφαρμογή που μας επιτρέπει να αναπτύξουμε προγράμματα που εκτελούνται ως κοντέινερ. Ήταν γραμμένο στη δημοφιλή γλώσσα προγραμματισμού Go

Δημιουργήστε ένα Docker Swarm στο Alpine Linux 3.9.0

Δημιουργήστε ένα Docker Swarm στο Alpine Linux 3.9.0

Εισαγωγή Αυτός ο οδηγός θα σας δείξει πώς να δημιουργήσετε και να διαμορφώσετε ένα σμήνος Docker χρησιμοποιώντας πολλούς διακομιστές Alpine Linux 3.9.0 και Portainer. Παρακαλώ να γνωρίζετε ότι

Αναπτύξτε μια εφαρμογή PHP χρησιμοποιώντας Docker-compose

Αναπτύξτε μια εφαρμογή PHP χρησιμοποιώντας Docker-compose

Οι εφαρμογές PHP συνήθως αποτελούνται από έναν διακομιστή web, ένα σύστημα σχεσιακής βάσης δεδομένων και τον ίδιο τον διερμηνέα γλώσσας. Σε αυτό το σεμινάριο θα χρησιμοποιήσουμε μόχλευση

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

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

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

Αναπτύξτε μια εφαρμογή Node.js χρησιμοποιώντας Docker

Αναπτύξτε μια εφαρμογή Node.js χρησιμοποιώντας Docker

Αυτό το άρθρο θα σας δείξει πώς να αναπτύξετε την εφαρμογή Node σας σε ένα κοντέινερ Docker. Σημείωση: Αυτό το σεμινάριο προϋποθέτει ότι έχετε εγκαταστήσει και διαβάσει το Docker

Εγκατάσταση του Docker CE στο CentOS 7

Εγκατάσταση του Docker CE στο CentOS 7

Η τεχνολογία Docker container σάς επιτρέπει να εκτελείτε εφαρμογές σε ένα συγκεκριμένο και απομονωμένο περιβάλλον. Το Docker Community Edition (CE) είναι το νέο όνομα για το fre

Αναπτύξτε το Kubernetes με το Kubeadm στο CentOS 7

Αναπτύξτε το Kubernetes με το Kubeadm στο CentOS 7

Επισκόπηση Αυτό το άρθρο προορίζεται να σας βοηθήσει να θέσετε σε λειτουργία ένα σύμπλεγμα Kubernetes με το kubeadm σε ελάχιστο χρόνο. Αυτός ο οδηγός θα αναπτύξει δύο διακομιστές, σε

Εγκατάσταση του Docker στο CentOS 7

Εγκατάσταση του Docker στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Docker είναι μια εφαρμογή που επιτρέπει την ανάπτυξη λογισμικού εντός εικονικών κοντέινερ. Ήταν γραμμένο στο πρόγραμμα Go

Ξεκινήστε με τον SQL Server 2017 (MS-SQL) στο CentOS 7 με Docker

Ξεκινήστε με τον SQL Server 2017 (MS-SQL) στο CentOS 7 με Docker

Προαπαιτούμενα Docker engine 1.8+. Τουλάχιστον 4 GB χώρου στο δίσκο. Τουλάχιστον 4 GB μνήμης RAM. Βήμα 1. Εγκατάσταση Docker Για να εγκαταστήσετε τον SQL-Server, ο Docker mus

Δύο εργαλεία διαχείρισης γραφικών Docker: DockerUI και Shipyard

Δύο εργαλεία διαχείρισης γραφικών Docker: DockerUI και Shipyard

Με τη βοήθεια της εφαρμογής Vultr Docker, μπορείτε εύκολα να αναπτύξετε το Docker στην παρουσία του διακομιστή Vultr. Εν τω μεταξύ, μπορείτε να διευκολύνετε τη διαχείριση του Docker

Εγκαταστήστε τον διακομιστή Rancher στο RancherOS

Εγκαταστήστε τον διακομιστή Rancher στο RancherOS

Επισκόπηση Το RancherOS είναι ένα απίστευτα ελαφρύ λειτουργικό σύστημα (μόνο περίπου 60 MB) που εκτελεί έναν δαίμονα Docker συστήματος ως PID 0 για την εκτέλεση υπηρεσιών συστήματος

Ξεκινώντας με το Kubernetes στο CentOS 7

Ξεκινώντας με το Kubernetes στο CentOS 7

Το Kubernetes είναι μια πλατφόρμα ανοιχτού κώδικα που αναπτύχθηκε από την Google για τη διαχείριση εφαρμογών με κοντέινερ σε ένα σύμπλεγμα διακομιστών. Χτίζεται σε μια δεκαετία και

Εγκαταστήστε το Rancher στο Ubuntu 16.04

Εγκαταστήστε το Rancher στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το Rancher είναι μια πλατφόρμα ανοιχτού κώδικα για τη λειτουργία κοντέινερ και τη δημιουργία ιδιωτικής υπηρεσίας εμπορευματοκιβωτίων. Το Rancher είναι η βάση

Ρύθμιση Sentry μέσω Docker στο Ubuntu 16.04

Ρύθμιση Sentry μέσω Docker στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το Sentry είναι μια λύση ανοιχτού κώδικα για την παρακολούθηση σφαλμάτων. Το Sentry παρακολουθεί εξαιρέσεις και άλλα χρήσιμα μηνύματα

Sticky Session With Docker Swarm (CE) στο CentOS 7

Sticky Session With Docker Swarm (CE) στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το Docker Swarm μετατρέπει τους μεμονωμένους διακομιστές σας σε ένα σύμπλεγμα υπολογιστών, διευκολύνοντας την κλιμάκωση, την υψηλή διαθεσιμότητα και

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. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα