Preduvjeti
Dodajte .NET feed proizvoda u sustav
Instalirajte najnoviji .NET SDK koristeći YUM
Izradite web-aplikaciju .NET Core
(Izborno): Postavite Supervizor kako bi vaša web-aplikacija .NET Core ostala na mreži
(Neobavezno): Instalirajte Nginx kao obrnuti proxy
Postavite pravila vatrozida
.NET Core je redizajnirani open source razvojni okvir za više platformi koji održavaju Microsoft i stalno rastuća .NET zajednica. Uz pomoć .NET Corea, programeri mogu jednostavno izgraditi moderne aplikacije visokih performansi na svim vrstama platformi.
U ovom članku pokazat ću vam kako instalirati .NET Core na instancu poslužitelja CentOS 7, a zatim implementirati potpuno funkcionalnu .NET Core web aplikaciju.
Preduvjeti
Dodajte .NET feed proizvoda u sustav
Kao razvojni okvir za više platformi, .NET Core pruža unaprijed kompajlirane binarne datoteke za različite operativne sustave. Na CentOS-u 7 možete postaviti službeno potpisan .NET YUM repo pokretanjem sljedećih naredbi kao sudo korisnik:
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'
Instalirajte najnoviji .NET SDK koristeći YUM
Ako imate .NET YUM repo, instalirajte najnoviji .NET SDK, uključujući .NET Core i druge ovisnosti, na svoj stroj:
sudo yum update -y
sudo yum install libunwind libicu -y
sudo yum install dotnet-sdk-2.1.4 -y
Kako biste potvrdili rezultat, možete stvoriti i pokrenuti "Hello World" demo .NET Core aplikaciju:
cd
dotnet new console -o helloworldApp
cd helloworldApp
dotnet run
dotnet new console -o helloworldAppNaredba će izraditi direktorij pod nazivom helloworldAppu početnom direktoriju, a zatim koristiti consolepredložak za generiranje aplikacija za datoteke u novonastale imenik.
Nakon izvršenja dotnet runnaredbe, vidjet ćete Hello World!poruku u konzoli.
Izradite web-aplikaciju .NET Core
Sada stvorite i pokrenite .NET Core aplikaciju tipa razor. Samo zapamtite da je "Razor Pages" novi predložak aplikacije .NET Core MVC-a koji je dizajniran za scenarije orijentirane na stranice:
cd
dotnet new razor -o myfirstwebapp
cd myfirstwebapp
dotnet run
Izvođenjem dotnet rungornje naredbe pokrenut ćete web-aplikaciju .NET Core koja sluša: http://localhost:5000.
Ako želite potvrditi da je web-aplikacija pokrenuta i radi, iako je na instanci poslužitelja bez GUI-a, još uvijek možete otvoriti novu terminalsku konzolu i unijeti curl http://localhost:5000da biste vidjeli izvorni kod početne stranice web-aplikacije.
Nakon toga možete pritisnuti CTRL+ Cda biste isključili web-aplikaciju .NET Core.
Da biste materijalizirali svoju web-aplikaciju, trebate urediti datoteke unutar direktorija aplikacije. Više pojedinosti možete saznati na službenoj stranici .NET dokumenta .
Nakon što su svi razvojni zadaci obavljeni, možete koristiti sljedeće naredbe za objavljivanje svoje web aplikacije:
cd ~/myfirstwebapp
dotnet publish
Objavljenu web aplikaciju možete pronaći u ~/myfirstwebapp/bin/Debug/netcoreapp2.0imeniku.
(Izborno): Postavite Supervizor kako bi vaša web-aplikacija .NET Core ostala na mreži
Događaju se padovi procesa. Kako biste zadržali svoju web-aplikaciju na mreži, dobra je ideja imati alat za upravljanje procesima, kao što je Supervizor, za praćenje i ponovno pokretanje srušenih procesa web-aplikacije.
Na CentOS 7 možete instalirati Supervisor koristeći YUM:
sudo yum install supervisor -y
Zatim morate postaviti namjensku konfiguracijsku datoteku Supervisora za svoju web-aplikaciju:
cd /etc/supervisord.d
sudo vi myfirstwebapp.conf
Popuni datoteku:
[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
Spremi i zatvori:
:wq!
Zatim morate izmijeniti zadanu supervisordkonfiguracijsku datoteku kako biste uključili konfiguracijsku datoteku koju smo stvorili:
sudo cp /etc/supervisord.conf /etc/supervisord.conf.bak
sudo vi /etc/supervisord.conf
Pronađite zadnji redak:
files = supervisord.d/*.ini
Zamijenite ga:
files = supervisord.d/*.conf
Spremi i zatvori:
:wq!
Pokrenite Supervisor i postavite ga da se automatski pokreće pri pokretanju sustava:
sudo systemctl start supervisord.service
sudo systemctl enable supervisord.service
Učitajte nove postavke Supervizora:
sudo supervisorctl reread
sudo supervisorctl update
Sada možete koristiti sljedeću naredbu za prikaz statusa aplikacije:
sudo supervisorctl status
Izlaz će izgledati ovako:
myfirstwebapp RUNNING pid 3925, uptime 0:08:45
Zatim možete pokušati prekinuti proces aplikacije navođenjem pid-a 3925:
sudo kill -s 9 3925
Pričekajte neko vrijeme, a zatim ponovno provjerite status:
sudo supervisorctl status
Ovaj put, izlaz će pokazati da se aplikacija pokvarila i automatski pokrenula:
myfirstwebapp RUNNING pid 3925, uptime 0:00:06
(Neobavezno): Instalirajte Nginx kao obrnuti proxy
Kako biste posjetiteljima olakšali pristup, možete instalirati Nginx kao obrnuti proxy za prosljeđivanje web prometa na port 5000.
Instalirajte Nginx koristeći YUM:
sudo yum install nginx -y
Uredite zadanu Nginx konfiguracijsku datoteku na sljedeći način:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo vi /etc/nginx/nginx.conf
Pronađite sljedeći segment unutar http {}segmenta:
location / {
}
Umetnite šest redaka postavki obrnutog proxyja između zagrada kao što je prikazano u nastavku:
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;
}
Spremi i zatvori:
:wq!
Pokrenite uslugu Nginx, a zatim je postavite da se pokreće pri pokretanju sustava:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Postavite pravila vatrozida
Prije nego posjetitelji mogu pristupiti web-aplikaciji .NET Core na portovima 80i 443, morate izmijeniti pravila vatrozida kao što je prikazano u nastavku:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
Time je dovršeno postavljanje aplikacije. Sada ste spremni pregledavati svoju web-aplikaciju .NET Core na adresi http://203.0.113.1.