Как да разположите .NET Core уеб приложение на CentOS 7

.NET Core е преработена рамка за кросплатформена разработка с отворен код, поддържана от Microsoft и непрекъснато нарастващата .NET общност. С помощта на .NET Core разработчиците могат лесно да създават модерни високопроизводителни приложения на всякакви платформи.

В тази статия ще ви покажа как да инсталирате .NET Core на сървърен екземпляр на CentOS 7 и след това да разположите пълно функционално .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

За да потвърдите резултата, можете да създадете и стартирате демонстрационно .NET Core приложение "Hello World":

cd
dotnet new console -o helloworldApp
cd helloworldApp
dotnet run

В dotnet new console -o helloworldAppкоманда ще създаде директория с име helloworldAppв дома си директория и след това да използвате consoleшаблона, за да генерира ап файлове в новосъздадената директория.

След като изпълните dotnet runкомандата, ще видите Hello World!съобщението в конзолата.

Създайте уеб приложение .NET Core

Сега създайте и стартирайте .NET Core приложение от тип razor. Само не забравяйте, че „Razor Pages“ е нов шаблон за приложение на .NET Core MVC, който е предназначен за ориентирани към страници сценарии:

cd
dotnet new razor -o myfirstwebapp
cd myfirstwebapp
dotnet run

Като изпълните dotnet runкомандата по-горе, ще стартирате уеб приложение .NET Core, което слуша: http://localhost:5000.

Ако искате да потвърдите, че уеб приложението е готово и работи, въпреки че е на сървърен екземпляр без GUI, все пак можете да отворите нова терминална конзола и да въведете, за curl http://localhost:5000да видите изходния код на началната страница на уеб приложението.

След това можете да натиснете CTRL+, за Cда изключите уеб приложението .NET Core.

За да материализирате вашето уеб приложение, трябва да редактирате файлове в директорията на приложението. Можете да научите повече подробности в официалната страница на .NET документ .

След като завършите всички задачи за разработка, можете да използвате следните команди, за да публикувате вашето уеб приложение:

cd ~/myfirstwebapp
dotnet publish

Можете да намерите публикуваното уеб приложение в ~/myfirstwebapp/bin/Debug/netcoreapp2.0директорията.

(По избор): Настройте Supervisor, за да поддържате вашето .NET Core уеб приложение онлайн

Случват се сривове на процесите. За да поддържате уеб приложението си онлайн, добре е да имате инструмент за управление на процеси, като например 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

Заредете новите настройки на Supervisor:

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

Настройте правилата на защитната стена

Преди посетителите да имат достъп до уеб приложението .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

Това завършва настройката на приложението. Вече сте готови да разглеждате вашето уеб приложение .NET Core на адрес http://203.0.113.1.


Инсталирайте Plesk на CentOS 7

Инсталирайте Plesk на CentOS 7

Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Microweber на CentOS 7

Как да инсталирате Microweber на CentOS 7

Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати

Позволява криптиране на cPanel

Позволява криптиране на cPanel

Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие ​​и вашият клиент

Как да инсталирате Concrete5 на CentOS 7

Как да инсталирате Concrete5 на CentOS 7

Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

Как да инсталирате YOURLS на CentOS 7

Как да инсталирате YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Използване на Etckeeper за контрол на версиите на /etc

Използване на Etckeeper за контрол на версиите на /etc

Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок

Настройване на сървър на Half Life 2 на CentOS 6

Настройване на сървър на Half Life 2 на CentOS 6

Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече