Як розгорнути веб-додаток .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, встановіть на свій комп’ютер найновіший пакет SDK .NET, включаючи .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.

Якщо ви хочете підтвердити, що веб-програма запущена та працює, хоча вона знаходиться на екземплярі сервера без графічного інтерфейсу, ви все одно можете відкрити нову термінальну консоль і ввести, 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.

Залишити коментар

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

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. Прочитайте цю статтю, щоб дізнатися більше