centos 配置.Net core 环境并部署dotnet Core文件

时间:2024-01-19 14:05:08

一、配置环境【Microsoft dotnet Core

1) Add the dotnet product feed

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

2) Install the .NET SDK

sudo yum update
sudo yum install dotnet-sdk-2.1

3) Create your project

dotnet new webapi -n test

4) 运行项目

dotnet run 

5)发布

dotnet publish

6) 运行

dotnet test.dll

7)运行结果

centos 配置.Net core 环境并部署dotnet Core文件

二、从本地上传项目,执行运行操作

centos 配置.Net core 环境并部署dotnet Core文件

出现这个问题是没有安装 dotnet-hosting-2.0.0,安装一下

yum install dotnet-hosting-2.0.

再次运行,又出现问题

centos 配置.Net core 环境并部署dotnet Core文件

说明现在的平台上的dotnet SDK不是2.0.3的【2.0.6不存在】,执行以下命令即可:

sudo yum install dotnet-sdk-2.0.

继续运行,安装dotnet-hosting-2.0.x版本不对(你软件对应的.net core 版本)

centos 配置.Net core 环境并部署dotnet Core文件

yum install dotnet-hosting-2.0.X

运行

centos 配置.Net core 环境并部署dotnet Core文件

这是因为没装libunwind。libunwind库为基于64位CPU和操作系统的程序提供了基本的堆栈辗转开解功能,32位操作系统不要安装。其中包括用于输出堆栈跟踪的API、用于以编程方式辗转开解堆栈的API以及支持C++异常处理机制的API

yum install libunwind

好了,终于运行成功

centos 配置.Net core 环境并部署dotnet Core文件

此时程序再centos上运行成功,我们可以在centos服务器中进行访问,但是无法在外部浏览器中进行访问,需要一个web容器进行转发。可以使用jexus,也可以使用Nginx.

三、安装Nginx

curl -o  nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

rpm -ivh nginx.rpm

yum install nginx

启动nginx

输入:systemctl start nginx 来启动nginx。

输入:systemctl enable nginx 来设置nginx的开机启动(linux宕机、重启会自动运行nginx不需要连上去输入命令)。

开启端口,进行测试nginx

firewall-cmd --zone=public --add-port=/tcp --permanent

ystemctl restart firewalld

centos 配置.Net core 环境并部署dotnet Core文件

四、配置dotnet core到nginx 【文章来源

修改 /etc/nginx/conf.d/default.conf 文件。

server {
listen ;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

执行:nginx  reload 使其即时生效

再次访问,还是失败。

这个问题是由于SELinux保护机制所导致,我们需要将nginx添加至SELinux的白名单。

yum install policycoreutils-python

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

sudo semodule -i mynginx.pp

再次访问

centos 配置.Net core 环境并部署dotnet Core文件