步骤要点:

一、关闭Centos selinux:

操作方式:

1.永久关闭:打开/etc/selinux/config文件,设置SELINUX=disabled,注意,不是SELINUXTYPE=disabled否则重启后无法进入linux)。

2.临时关闭,不用重启:setenforce 0    #设置SELinux为permissive模式

二、安装微软产品密匙及dotnet:

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

再安装asp.net core 2.1:yum -y install dotnet-sdk-2.1

安装完成后,运行:dotnet -verison可以查看是否安装成功。

三、上传项目:

首先在服务器端安装lrzsz工具包,所需命令:yum install lrzsz

安装完成后,用xshell链接到服务器,并切换到所需上传的目录下,运行命令:rz,然后选择所需文件上传即可。

四、测试dotnet及项目文件:

在项目文件目录下,运行 dotnet *****dll,默认启动5000端口,然后在浏览器查看项目运行情况。

五、安装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 及 systemctl enable nginx

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

systemctl restart firewalld

这时候,还需要配置nginx,打开 /etc/nginx/conf.d/default.conf 文件,修改其server部分,如下:

server {
listen ;
#server_name localhost; #charset koi8-r;
#access_log /var/log/nginx/host.access.log main; 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 -s reload,重启nginx

最终,示例项目运行结果如下:

另外,在部署时候,需要将Program.cs里面的代码修改如下:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUrls("http://*:5000")
.UseContentRoot(AppContext.BaseDirectory)
.UseStartup<Startup>();

发布后,将wwwroot外面的文件转移到wwwroot文件夹内,并运行dotnet *** 即可运行(查看控制台,不再出现404找不到文件情况发生)。

参考文献:http://www.cnblogs.com/ants/p/5732337.html,在此表示感谢。

ASP.NET core 2.1部署到 Centos 7的更多相关文章

  1. asp.net core 2.1 部署 centos7

    asp.net core 2.1 部署 centos7 Kestrel 非常适合从 ASP.NET Core 提供动态内容. 但是,Web 服务功能不像服务器(如 IIS.Apache 或 Nginx ...

  2. ASP.NET Core托管和部署Linux实操演练手册

    一.课程介绍 ASP.NET Core 是一种全新的跨平台开源 .NET 框架,能够在 IIS.Nginx.Apache.Docker 上进行托管或在自己的进程中进行自托管. 作为一个.NET Web ...

  3. dotnet core 使用 sqlite 部署到 Centos 服务器

    原文:dotnet core 使用 sqlite 部署到 Centos 服务器 本文告诉大家如何创建一个 asp dotnet core 程序,这个程序使用 sqlite 保存,部署程序到 Cento ...

  4. ASP.NET Core开发-Docker部署运行

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  5. ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  6. ASP.NET Core 1.0 部署 HTTPS

    ASP.NET Core 1.0 部署 HTTPS ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1) 提示 更新时间:2016年01月23日. 在目前介 ...

  7. ASP.NET Core开发期间部署到IIS自定义主机域名并附加进程调试

    在.NET Framework环境下,我们经常会这么做 把一个web项目不经过发布直接部署到IIS里去,配置上主机名,修改一下hosts文件,就可以用自定义的域名来访问我们的应用程序,使用附加到进程( ...

  8. asp.net core 2.1 部署IIS(win10/win7)

    asp.net core 2.1 部署IIS(win10/win7) 概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器 ...

  9. ASP.NET Core使用TopShelf部署Windows服务

    asp.net core很大的方便了跨平台的开发者,linux的开发者可以使用apache和nginx来做反向代理,windows上可以用IIS进行反向代理. 反向代理可以提供很多特性,固然很好.但是 ...

随机推荐

  1. IDEA 自动生成Hibernate实体类和Mapping文件

    一.新建工程Demo(如果选的时候勾选了hibernate,IDEA会自动下载Hibernate包,不需要手动导入) 二.导入相关包 Mysql && Hibernate 三.添加Hi ...

  2. Beta发布用户使用报告

    用户数量:13人 姓名如下(包括化名):张小斌.王瑞瑞.蛋蛋.小美.晨曦.小丽.张利刚.小闫.小谢.小崔.小欢欢.小胡胡.小霞霞 寻找的用户多为王者荣耀交流协会成员的同学,对PSP Daily软件有极 ...

  3. linux下crontab定时执行shell脚本调用oracle 存储过程

    问题:脚本内调用存储过程,脚本直接执行没问题,使用crontab 执行脚本存储过程未执行 原因:缺少oracle环境变量 解决:在shell脚本里添加oracle的环境变量 #!/bin/sh PAT ...

  4. thinkphp5.0验证的封装

    刚学完这个验证器封装,刚开始还是有点晕的,后面仔细看了两遍,才慢慢感觉到了继承这个方法的好处,看来还得慢慢锻炼锻炼; 问题:结合上篇的自定义验证器,发现每次使用验证器都重复这样写代码;//验证器$va ...

  5. FlappyBirdWeb素材资源

    https://pan.baidu.com/s/1UeNmhnmK4RInmfiEduPrAQ 先上网盘地址 https://github.com/JIANGYUJING1995/FlappyBird ...

  6. celery使用rabbitmq报错[Errno 104] Connection reset by peer.

    写好celery任务文件,使用celery -A app worker --loglevel=info启动时,报告如下错误: [2019-01-29 01:19:26,680: ERROR/MainP ...

  7. 准备学习wrf

    namelist.wps 中的 geog_data_path=后面的文件夹的文件即土地覆被资料:(看下图) 推荐中科院地理所承担的地球系统科学数据共享平台上共享的100m分辨率资料,官网  http: ...

  8. java标志性接口

    标识接口是没有任何方法和属性的接口.它仅仅表明它的类属于一个特定的类型,供其他代码来测试允许做一些事情.使用标记接口的唯一目的是使得可以用instanceof进行类型查询,例如:if(obj inst ...

  9. Python练习五

    1.用文件操作的方式,创建登录注册功能,允许用户输错三次. user = input("请输入你要注册的用户名:") password = input("请输入你要注册的 ...

  10. ConcurrentDictionary对象

    ConcurrentDictionary<int, List<a>> dic = new ConcurrentDictionary<int, List<a>& ...