帮酷LOGO
0 0 评论
文章标签:DEP  WEB  CORE  Web应用  Centos  

.NET Core是微软维护的开源跨平台开发框架,有不断增长的.NET社区,借助.NET Core,开发者可以在各种平台上轻松构建现代高性能应用。

在本文中,我将向你展示,如何在Centos7服务器实例上安装NET核心,然后部署一个功能完整的.NET Core Web Application。

前提条件

向系统添加.NET产品提要

作为跨平台开发framework,.NET Core为各种操作系统提供预先编译的二进制文件,在CentOS 7上,你可以使用sudo用户运行以下命令来设置有正式签名的.NET YUM repo :


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-prodnenabled=1ngpgcheck=1ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

使用YUM安装最新的.NET SDK

安装.NET YUM repo后,在你的计算机上安装最新的.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网络应用程序

现在,创建并运行razor的.NET Core应用程序,记住"Razor Pages"是.NET CoreMVC的一个新应用程序模板,它是针对面向页面的场景而设计的:


cd
dotnet new razor -o myfirstwebapp
cd myfirstwebapp
dotnet run

通过执行上面的dotnet run命令,你将启动一个.NET Core网络应用程序侦听: http://localhost:5000

如果你想确认web应用程序正在运行,尽管它在没有GUI的服务器实例上,但是,仍然可以打开curl http://localhost:5000

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

要实现你的Web应用程序,你需要编辑app目录中的文件。你可以在.NET文档页 官方网站上了解更多详情。

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


cd ~/myfirstwebapp
dotnet publish

你可以在下面的代码中找到已发布 ~/myfirstwebapp/bin/Debug/netcoreapp2.0 目录。

(可选):Setup Supervisor使你的.NET Core Web应用程序保持在线状态

进程崩溃,为了保持web应用程序的联机,使用一个进程管理工具来监视和重新启动web应用程序。

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


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

 
!

启动管理员并将它设置为在系统启动时自动启动:


sudo systemctl start supervisord.service
sudo systemctl enable supervisord.service

加载新的主管设置:


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流量传递给端口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

设置防火墙规则

访问者可以访问80443上的.NET Core网络应用程序之前,需要修改防火墙规则,如下所示:


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

这就完成了应用程序设置,你现在可以在http://203.0.113.1浏览.NET CoreWeb应用程序了。



文章标签:WEB  DEP  CORE  Web应用  Centos  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语