Προαπαιτούμενα
Προσθέστε τη ροή προϊόντων .NET στο σύστημα
Εγκαταστήστε το πιο πρόσφατο .NET SDK χρησιμοποιώντας το YUM
Δημιουργήστε μια εφαρμογή web .NET Core
(Προαιρετικό): Ρυθμίστε τον Επόπτη για να διατηρείτε την εφαρμογή web .NET Core online
(Προαιρετικό): Εγκαταστήστε το Nginx ως αντίστροφο διακομιστή μεσολάβησης
Ρύθμιση κανόνων τείχους προστασίας
Το .NET Core είναι ένα επανασχεδιασμένο πλαίσιο ανάπτυξης πολλαπλών πλατφορμών ανοιχτού κώδικα που διατηρείται από τη Microsoft και την ολοένα αναπτυσσόμενη κοινότητα .NET. Με τη βοήθεια του .NET Core, οι προγραμματιστές μπορούν εύκολα να δημιουργήσουν σύγχρονες εφαρμογές υψηλής απόδοσης σε κάθε είδους πλατφόρμες.
Σε αυτό το άρθρο, θα σας δείξω πώς να εγκαταστήσετε το .NET Core σε μια παρουσία διακομιστή CentOS 7 και στη συνέχεια να αναπτύξετε μια πλήρη λειτουργική εφαρμογή web .NET Core.
Προαπαιτούμενα
Προσθέστε τη ροή προϊόντων .NET στο σύστημα
Ως πλαίσιο ανάπτυξης πολλαπλών πλατφορμών, το .NET Core παρέχει προ-μεταγλωττισμένα δυαδικά αρχεία για διάφορα λειτουργικά συστήματα. Στο CentOS 7, μπορείτε να ρυθμίσετε ένα επίσημα υπογεγραμμένο αποθετήριο .NET YUM εκτελώντας τις ακόλουθες εντολές ως χρήστης sudo:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
Εγκαταστήστε το πιο πρόσφατο .NET SDK χρησιμοποιώντας το YUM
Έχοντας στη θέση του το αποθετήριο .NET YUM, εγκαταστήστε το πιο πρόσφατο .NET SDK, συμπεριλαμβανομένου του .NET Core και άλλων εξαρτήσεων, στον υπολογιστή σας:
sudo yum update -y
sudo yum install libunwind libicu -y
sudo yum install dotnet-sdk-2.1.4 -y
Για να επιβεβαιώσετε το αποτέλεσμα, μπορείτε να δημιουργήσετε και να εκτελέσετε μια εφαρμογή επίδειξης "Hello World" .NET Core:
cd
dotnet new console -o helloworldApp
cd helloworldApp
dotnet run
Η dotnet new console -o helloworldAppεντολή θα δημιουργήσει έναν κατάλογο με όνομα helloworldAppστον αρχικό σας κατάλογο και, στη συνέχεια, θα χρησιμοποιήσει το consoleπρότυπο για να δημιουργήσει αρχεία εφαρμογής στον πρόσφατα δημιουργημένο κατάλογο.
Με την εκτέλεση της dotnet runεντολής, θα δείτε το Hello World!μήνυμα στην κονσόλα.
Δημιουργήστε μια εφαρμογή web .NET Core
Τώρα, δημιουργήστε και εκτελέστε μια εφαρμογή .NET Core τύπου razor. Απλώς θυμηθείτε ότι το "Razor Pages" είναι ένα νέο πρότυπο εφαρμογής του .NET Core MVC που έχει σχεδιαστεί για σενάρια προσανατολισμένα στη σελίδα:
cd
dotnet new razor -o myfirstwebapp
cd myfirstwebapp
dotnet run
Εκτελώντας την dotnet runπαραπάνω εντολή, θα ξεκινήσετε μια εφαρμογή web .NET Core που ακούει στο: http://localhost:5000.
Εάν θέλετε να επιβεβαιώσετε ότι η εφαρμογή Ιστού είναι σε λειτουργία και εκτελείται, αν και βρίσκεται σε μια παρουσία διακομιστή χωρίς GUI, μπορείτε να ανοίξετε μια νέα κονσόλα τερματικού και μια είσοδο curl http://localhost:5000για να προβάλετε τον πηγαίο κώδικα της αρχικής σελίδας της εφαρμογής Ιστού.
Στη συνέχεια, μπορείτε να πατήσετε CTRL+ Cγια να τερματίσετε τη λειτουργία της εφαρμογής web .NET Core.
Για να υλοποιήσετε την εφαρμογή Ιστού σας, πρέπει να επεξεργαστείτε αρχεία στον κατάλογο της εφαρμογής. Μπορείτε να μάθετε περισσότερες λεπτομέρειες στην επίσημη σελίδα του εγγράφου .NET .
Αφού ολοκληρώσετε όλες τις εργασίες ανάπτυξης, μπορείτε να χρησιμοποιήσετε τις ακόλουθες εντολές για να δημοσιεύσετε την εφαρμογή ιστού σας:
cd ~/myfirstwebapp
dotnet publish
Μπορείτε να βρείτε τη δημοσιευμένη εφαρμογή Ιστού στον ~/myfirstwebapp/bin/Debug/netcoreapp2.0κατάλογο.
(Προαιρετικό): Ρυθμίστε τον Επόπτη για να διατηρείτε την εφαρμογή web .NET Core online
Συμβαίνουν σφάλματα διαδικασίας. Για να διατηρήσετε την εφαρμογή ιστού σας online, είναι καλή ιδέα να έχετε ένα εργαλείο διαχείρισης διεργασιών, όπως το Supervisor, για την παρακολούθηση και επανεκκίνηση των διαδικασιών εφαρμογών ιστού που έχουν διακοπεί.
Στο CentOS 7, μπορείτε να εγκαταστήσετε το Supervisor χρησιμοποιώντας το YUM:
sudo yum install supervisor -y
Στη συνέχεια, πρέπει να ρυθμίσετε ένα αποκλειστικό αρχείο διαμόρφωσης Supervisor για την εφαρμογή Ιστού σας:
cd /etc/supervisord.d
sudo vi myfirstwebapp.conf
Συμπληρώστε το αρχείο:
[program:myfirstwebapp]
command=dotnet myfirstwebapp.dll
directory=/home/sudouser/myfirstwebapp/bin/Debug/netcoreapp2.0/
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/myfirstwebapp.err.log
stdout_logfile=/var/log/myfirstwebapp.out.log
Αποθήκευση και έξοδος:
:wq!
Στη συνέχεια, πρέπει να τροποποιήσετε το προεπιλεγμένο supervisordαρχείο διαμόρφωσης για να συμπεριλάβετε το αρχείο διαμόρφωσης που δημιουργήσαμε:
sudo cp /etc/supervisord.conf /etc/supervisord.conf.bak
sudo vi /etc/supervisord.conf
Βρείτε την τελευταία γραμμή:
files = supervisord.d/*.ini
Αντικατέστησέ το:
files = supervisord.d/*.conf
Αποθήκευση και έξοδος:
:wq!
Εκκινήστε το Supervisor και ρυθμίστε το να ξεκινά αυτόματα κατά την εκκίνηση του συστήματος:
sudo systemctl start supervisord.service
sudo systemctl enable supervisord.service
Φορτώστε τις νέες ρυθμίσεις Επόπτη:
sudo supervisorctl reread
sudo supervisorctl update
Τώρα, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να εμφανίσετε την κατάσταση της εφαρμογής:
sudo supervisorctl status
Η έξοδος θα μοιάζει με το εξής:
myfirstwebapp RUNNING pid 3925, uptime 0:08:45
Στη συνέχεια, μπορείτε να προσπαθήσετε να σκοτώσετε τη διαδικασία της εφαρμογής καθορίζοντας το pid 3925:
sudo kill -s 9 3925
Περιμένετε λίγο και, στη συνέχεια, ελέγξτε ξανά την κατάσταση:
sudo supervisorctl status
Αυτή τη φορά, η έξοδος θα υποδείξει ότι η εφαρμογή χάλασε και ξεκίνησε αυτόματα:
myfirstwebapp RUNNING pid 3925, uptime 0:00:06
(Προαιρετικό): Εγκαταστήστε το Nginx ως αντίστροφο διακομιστή μεσολάβησης
Προκειμένου να διευκολυνθεί η πρόσβαση των επισκεπτών, μπορείτε να εγκαταστήσετε το Nginx ως αντίστροφο διακομιστή μεσολάβησης για να μεταβιβάσετε την κυκλοφορία ιστού στη θύρα 5000.
Εγκαταστήστε το Nginx χρησιμοποιώντας το YUM:
sudo yum install nginx -y
Επεξεργαστείτε το προεπιλεγμένο αρχείο διαμόρφωσης Nginx ως εξής:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo vi /etc/nginx/nginx.conf
Βρείτε το ακόλουθο τμήμα μέσα στο http {}τμήμα:
location / {
}
Εισαγάγετε έξι γραμμές αντίστροφων ρυθμίσεων διακομιστή μεσολάβησης μεταξύ των στηρίξεων όπως φαίνεται παρακάτω:
location / {
proxy_pass http://127.0.0.1:5000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Αποθήκευση και έξοδος:
:wq!
Ξεκινήστε την υπηρεσία Nginx και στη συνέχεια ρυθμίστε την να ξεκινά κατά την εκκίνηση του συστήματος:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Ρύθμιση κανόνων τείχους προστασίας
Για να μπορέσουν οι επισκέπτες να έχουν πρόσβαση στην εφαρμογή web .NET Core στις θύρες 80και στο 443, πρέπει να τροποποιήσετε τους κανόνες του τείχους προστασίας όπως φαίνεται παρακάτω:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
Αυτό ολοκληρώνει τη ρύθμιση της εφαρμογής. Τώρα είστε έτοιμοι να περιηγηθείτε στην εφαρμογή web .NET Core στη διεύθυνση http://203.0.113.1.