.NET Core este un cadru de dezvoltare cross-platformă reproiectat de sursă deschisă menținut de Microsoft și de comunitatea .NET în continuă creștere. Cu ajutorul .NET Core, dezvoltatorii pot construi cu ușurință aplicații moderne de înaltă performanță pe toate tipurile de platforme.
În acest articol, vă voi arăta cum să instalați .NET Core pe o instanță a serverului CentOS 7 și apoi să implementați o aplicație web completă .NET Core funcțională.
Cerințe preliminare
Adăugați sistemul de alimentare .NET în sistem
Ca un cadru de dezvoltare multiplă platformă, .NET Core oferă binare pre-compilate pentru diferite sisteme de operare. Pe CentOS 7, puteți configura un reparat .NET YUM semnat oficial rulând următoarele comenzi ca utilizator 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'
Instalați cel mai recent .NET SDK folosind YUM
După ce repoziția .NET YUM este instalată, instalați cel mai recent .NET SDK, inclusiv .NET Core și alte dependențe, pe aparatul dvs.:
sudo yum update -y
sudo yum install libunwind libicu -y
sudo yum install dotnet-sdk-2.1.4 -y
Pentru a confirma rezultatul, puteți crea și rula o aplicație .NET Core. Demo „Hello World”:
cd
dotnet new console -o helloworldApp
cd helloworldApp
dotnet run
dotnet new console -o helloworldAppComandă va crea un director numit helloworldAppîn directorul de acasă și apoi să utilizați consoleșablonul pentru a genera app fișiere în directorul nou creat.
La executarea dotnet runcomenzii, veți vedea Hello World!mesajul în consolă.
Creați o aplicație web .NET Core
Acum, creați și rulați o aplicație de tip .NET Core razor. Amintiți-vă doar că „Pagini Razor” este un nou șablon de aplicație al .NET Core MVC care este proiectat pentru scenarii orientate către pagini:
cd
dotnet new razor -o myfirstwebapp
cd myfirstwebapp
dotnet run
Prin executarea dotnet runcomenzii de mai sus, veți începe o aplicație web de ascultare .NET Core: http://localhost:5000.
Dacă doriți să confirmați că aplicația web este funcțională, deși este pe o instanță a serverului fără GUI, puteți totuși deschide o nouă consolă de terminal și intrare curl http://localhost:5000pentru a vizualiza codul sursă al paginii de pornire a aplicației web.
După aceea, puteți apăsa CTRL+ Cpentru a opri aplicația web .NET Core.
Pentru a materializa aplicația web, trebuie să editați fișierele din directorul aplicației. Puteți afla mai multe detalii în pagina oficială de document .NET .
După efectuarea tuturor sarcinilor de dezvoltare, puteți utiliza următoarele comenzi pentru a publica aplicația web:
cd ~/myfirstwebapp
dotnet publish
Puteți găsi aplicația web publicată în ~/myfirstwebapp/bin/Debug/netcoreapp2.0director.
(Opțional): Supervizor de configurare pentru a menține aplicația web .NET Core online
Se produc blocaje de proces. Pentru a vă menține aplicația web online, este bine să aveți un instrument de gestionare a proceselor, cum ar fi Supervisor, pentru a monitoriza și reporni procesele de aplicații web blocate.
Pe CentOS 7, puteți instala Supervisor folosind YUM:
sudo yum install supervisor -y
În continuare, trebuie să configurați un fișier de configurare dedicat Supervisor pentru aplicația dvs. web:
cd /etc/supervisord.d
sudo vi myfirstwebapp.conf
Populați fișierul:
[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
Salvează și închide:
:wq!
În continuare, trebuie să modificați supervisordfișierul de configurare implicit pentru a include fișierul de configurare pe care l-am creat:
sudo cp /etc/supervisord.conf /etc/supervisord.conf.bak
sudo vi /etc/supervisord.conf
Găsiți ultima linie:
files = supervisord.d/*.ini
Inlocuieste-l:
files = supervisord.d/*.conf
Salvează și închide:
:wq!
Porniți Supervizorul și setați-l să pornească automat la pornirea sistemului:
sudo systemctl start supervisord.service
sudo systemctl enable supervisord.service
Încărcați noile setări de Supervizor:
sudo supervisorctl reread
sudo supervisorctl update
Acum, puteți utiliza următoarea comandă pentru a afișa starea aplicației:
sudo supervisorctl status
Rezultatul va arăta astfel:
myfirstwebapp RUNNING pid 3925, uptime 0:08:45
În continuare, puteți încerca să omori procesul aplicației specificând pid-ul 3925:
sudo kill -s 9 3925
Așteptați un timp și apoi verificați din nou starea:
sudo supervisorctl status
De data aceasta, rezultatul va indica că aplicația s-a descompus și a pornit automat:
myfirstwebapp RUNNING pid 3925, uptime 0:00:06
(Opțional): Instalați Nginx ca proxy invers
Pentru a facilita accesul vizitatorilor, puteți instala Nginx ca proxy invers pentru a transmite traficul web în port 5000.
Instalați Nginx folosind YUM:
sudo yum install nginx -y
Editați fișierul de configurare Nginx implicit după cum urmează:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo vi /etc/nginx/nginx.conf
Găsiți următorul segment din http {}segment:
location / {
}
Introduceți șase linii de setări de proxy invers între bretele, așa cum se arată mai jos:
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;
}
Salvează și închide:
:wq!
Porniți serviciul Nginx și apoi setați-l să înceapă la pornirea sistemului:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Setare reguli firewall
Înainte de vizitatorii pot accesa aplicația web .NET Core pe porturi 80și 443, trebuie să modificați regulile de firewall după cum se arată mai jos:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
Aceasta finalizează configurarea aplicației. Acum sunteți gata să răsfoiți aplicația web .NET Core la http://203.0.113.1.