如何在CentOS 7上部署.NET Core Web应用程序

.NET Core是由Microsoft和不断增长的.NET社区维护的经过重新设计的开放源代码跨平台开发框架。借助.NET Core,开发人员可以轻松地在各种平台上构建现代的高性能应用程序。

在本文中,我将向您展示如何在CentOS 7服务器实例上安装.NET Core,然后部署完整功能的.NET Core Web应用程序。

先决条件

将.NET产品Feed添加到系统中

作为一个跨平台开发框架,.NET Core为各种操作系统提供了预编译的二进制文件。在CentOS 7上,您可以通过以sudo用户身份运行以下命令来设置经过正式签名的.NET YUM存储库:

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'

使用YUM安装最新的.NET SDK

放置.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!在控制台中看到该消息。

创建一个.NET Core Web应用

现在,创建并运行类型为.NET Core的应用程序razor。请记住,“剃刀页面”是.NET Core MVC的新应用程序模板,专门用于面向页面的方案:

cd
dotnet new razor -o myfirstwebapp
cd myfirstwebapp
dotnet run

通过执行dotnet run上面的命令,您将启动一个.NET Core Web应用程序,侦听以下内容:http://localhost:5000

如果您要确认该Web应用程序已启动并正在运行,尽管它位于没有GUI的服务器实例上,您仍然可以打开新的终端控制台并输入curl http://localhost:5000以查看Web应用程序主页的源代码。

之后,您可以按CTRL+ C关闭.NET Core Web应用程序。

要实现您的Web应用,您需要在app目录中编辑文件。您可以在.NET官方文档页面中了解更多详细信息。

完成所有开发任务后,可以使用以下命令发布Web应用程序:

cd ~/myfirstwebapp
dotnet publish

您可以在~/myfirstwebapp/bin/Debug/netcoreapp2.0目录中找到已发布的Web应用程序。

(可选):设置主管,以使您的.NET Core Web应用程序保持在线状态

发生进程崩溃。为了使您的Web应用程序保持在线状态,最好使用进程管理工具(例如Supervisor)来监视并重新启动崩溃的Web应用程序进程。

在CentOS 7上,您可以使用YUM安装Supervisor:

sudo yum install supervisor -y

接下来,您需要为您的Web应用程序设置专用的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安装为反向代理,以将Web流量传递到port 5000

使用YUM安装Nginx:

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核心的Web应用程序80443,你需要修改防火墙规则,如下图所示:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload

这样就完成了应用程序的设置。现在您可以在上浏览.NET Core Web应用程序http://203.0.113.1



Leave a Comment

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

使用Nethogs监视网络带宽使用情况

使用Nethogs监视网络带宽使用情况

在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比

在CentOS 6上设置SA-MP San Andreas多人服务器

在CentOS 6上设置SA-MP San Andreas多人服务器

欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件

使用Etckeeper进行/ etc的版本控制

使用Etckeeper进行/ etc的版本控制

简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示

如何在CentOS 7上安装SonarQube

如何在CentOS 7上安装SonarQube

使用其他系统?SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供

如何在CentOS 7上使用Mosh进行远程服务器管理

如何在CentOS 7上使用Mosh进行远程服务器管理

使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用

如何在CentOS 7上安装MoinMoin

如何在CentOS 7上安装MoinMoin

MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商

在CentOS 7上安装H2O Web服务器

在CentOS 7上安装H2O Web服务器

H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。使用H2O作为您的Web服务器

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Ubuntu 16.10上安装Countly Analytics

如何在Ubuntu 16.10上安装Countly Analytics

使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能

如何在CentOS 7上安装MODX CMS和Nginx

如何在CentOS 7上安装MODX CMS和Nginx

MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装

如何在CentOS 7上安装ERPNext开源ERP

如何在CentOS 7上安装ERPNext开源ERP

使用其他系统?ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是免费的

如何在CentOS 7 LAMP VPS上安装Paste 2.1

如何在CentOS 7 LAMP VPS上安装Paste 2.1

使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是

如何在CentOS 7上安装Seafile Server

如何在CentOS 7上安装Seafile Server

使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智

如何在CentOS 7上安装Kolab组件

如何在CentOS 7上安装Kolab组件

使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。