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

一、配置环境【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)运行结果

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

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

yum install dotnet-hosting-2.0.0

再次运行,又出现问题

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

sudo yum install dotnet-sdk-2.0.3

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

yum install dotnet-hosting-2.0.X

运行

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

yum install libunwind

好了,终于运行成功

 此时程序再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=80/tcp --permanent

ystemctl restart firewalld

 

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

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

server {
    listen 80;
    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

再次访问

 

posted @ 2018-10-15 14:09  逍遥帝君  阅读(2232)  评论(1编辑  收藏  举报