一、配置环境【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.
再次运行,又出现问题
说明现在的平台上的dotnet SDK不是2.0.3的【2.0.6不存在】,执行以下命令即可:
sudo yum install dotnet-sdk-2.0.
继续运行,安装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=/tcp --permanent ystemctl restart firewalld
四、配置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
再次访问