频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
.net Core 部署到 Linux
2019-01-25 10:31:02         来源:小蜗  
收藏   我要投稿
.net Core 部署到 Linux

1.环境说明

服务器系统:CentOS 7.4 64位

相关工具:Xshel、Xftp

.net Core版本:2.2

VS版本:2017

服务器软件软件:.netcore、nginx、supervisor、policycoreutils-python

2.ASP.NET Core应用程序准备

这边我使用一个空的Web项目来进行演示,因为本篇主要介绍生产环境的部署,与应用无关。

首先发布到本地IIS文件夹进行测试无误

具体IIS部署.net core 见 :

https://www.cnblogs.com/Liyuting/p/10310444.html

3.安装.NET Core SDK for CentOS7

此处引用微软官方给出的命令进行安装:

https://dotnet.microsoft.com/download/linux-package-manager/centos/sdk-current

输入dotnet --info来查看是否安装成功

如果可以执行则表明.NET Core SDK安装成功。

4.部署ASP.NET Core应用程序

在home 里面新建 test 文件夹,用来保存上传的core

上传之前发布的文件夹至/home/test/

检查是否能够运行

cd进入test 文件,执行Linux.dll

这里可以新建一个连接,

世界杯外围投注官网 curlhttps://localhost:5000

出现如下图所示

如果出现这些信息则表示成功运行。

这时候我们只能在本地进行访问,无法使用IP访问,这时候我们需要部署一个web容器来进行转发。

5.配置Nginx

5.1 安装Nginx

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

rpm -ivh nginx.rpm

yum install nginx

安装成功!

输入:systemctl start nginx来启动nginx。

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

5.2配置防火墙

命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(开放80端口)

命令:systemctl restart firewalld(重启防火墙以使配置即时生效)

ps:此处如果出现错误,请检查防火墙的开启状态。

直接输入IP测试nginx是否可以访问。

5.3 配置nginx对ASP.NET Core应用的转发

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

将文件内容替换为

server {

listen 80;

location / {

proxy_pass https://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;

}

}

上传至CentOS进行覆盖。

执行:sudonginx -s 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

PS:如果执行命令时出现下列情况:

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

时出现:you must specify the -p option with the path to the policy file

请先检查SELinux是否被禁用掉了

在/etc/sysconf下有一个SeLinux文件,使用记事本打开,更改其中的SELINUX项的值就可以了。

SELINUX=disable禁用SeLinux SELINUX=enforcing使用SeLinux

再次尝试访问。

至此基本完成了部署。

点击复制链接 与好友分享!回本站首页
上一篇:Asp.Net Core 实现服务的批量注册注入
下一篇:C世界杯外围投注官网图片缩放平移从功能分析到编码实现
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑--致力于做实用的IT技术学习网站

世界杯外围投注官网