ASP.NET Core学习之四 在CentOS上部署.net core
一、安装CentOs
以前在大学学过linux,但是对命令行总是有一种深深的排斥感,几年之后,还是又回来了。
1.下载
现在没法翻墙,就算是翻墙网速也是蜗牛一样慢,我使用阿里云的镜像站进行下载速度还是杠杠的。
我使用的镜像地址是 https://mirrors.aliyun.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso ,可以根据自己需要去下载,总目录地址:https://mirrors.aliyun.com/centos/
2.安装
安装教程网上非常多,这里也不详细解说,我是根据百度经验的文章搭建的,教程地址是https://jingyan.baidu.com/article/eae0782787b4c01fec548535.html
二、部署.NET core
1.发布程序
首先,创建.NET CORE 2 MVC项目,确保能运行成功;然后,发布.NET程序。
.net core 分为两种应用类型,分别是Portable application(便携应用)和Self-contained application(自宿主应用); 需要详细了解的请看 拥抱.NET Core,如何开发跨平台的应用并部署至Ubuntu运行 。
在生产环境中需要考虑服务器更好的性能,所以使用便携式发布(简单说就是服务器自带core环境)。
在当前项目右键进行发布到文件夹即可,默认路径为bin\Release\PublishOutput。

2.安装.NET Core SDK
这里就是配置centos的core环境,让我们的网站可以运行起来。
官方的安装文档:https://www.microsoft.com/net/learn/get-started/linuxcentos
在centos的右上角打开应用程序,找到终端并打开。
首先、Add the dotnet product feed(其实就是向微软提交投名状,表示我这台服务器要用core),注意:先检测下是否能联网;
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
然后,才安装 core SDK。
命令一:sudo yum update
需要一段时间,而且会提示是否继续,输入y然后回车。
如果遇到提示another app is currently holding the yum lock;waiting for it to exit,表示yum正在被使用,通过以下命令强制关闭: rm -f /var/run/yum.pid
命令二、sudo yum install libunwind libicu
命令三、sudo yum install dotnet-sdk-2.0.2
这一步也需要下载安装包,耗时需要比较长时间。完成后使用命令 dotnet --help 查看下是否安装成功。
3.部署网站
首先,创建文件夹core,命令为
mkdir core
cd core
我这里使用的是虚拟机,就直接将生成好的文件考到core目录下,然后执行命令(dotnet 项目名称.dll)
dotnet DotNetCoreWebDemo.dll

直接使用自带的火狐浏览器就能访问http://localhost:5000
终于部署完了,由于整个过程都是使用图形界面,也没有遇到不懂命令的难题。
其实还有很多问题存在:
如何使用nginx?
怎么配置守护服务supervisor?
怎么使用docker ?
三、使用nginx
1.安装nginx
可以FQ的去看原文:https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7
1.添加 CentOS 7 EPEL 仓库
sudo yum install epel-release
2.安装nginx
sudo yum install nginx
3.启动nginx
sudo systemctl start nginx
4.使用ip访问,出现以下界面即成功安装

2、配制环境
1)配置防火墙
命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(开放80端口)
命令:systemctl restart firewalld(重启防火墙以使配置即时生效)
2)关闭SELinux ,使用getenforce 查询
临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
3) 修改Nginx 配制,保存
命令: vim /etc/nginx/nginx.conf
location / {
proxy_pass http://localhost:5000;
}
4) 重新加载Nginx配制文件
命令:nginx -t 测试配制文件是否正确
命令:nginx -s reload 重新加载nginx配制文件,不用重启nginx
第三步补充: 通过反向代理将ip访问指向到 http://localhost:5000
修改/etc/nginx/nginx.conf文件,在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;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
如果是多站点部署,在conf.d下创建一个core.conf,内容为 server{ ... }
注意:如果不修改第二步,会被selinux的安全设置拒绝,导致反向代理失败
......
还需努力,只是迈出了半步。。。
最后说一句,尽量把虚拟机搞的性能高一点,真是卡死我也。
参考文章:
https://www.cnblogs.com/Leo_wl/p/5734988.html
https://www.cnblogs.com/ares-yang/p/7736842.html
https://www.cnblogs.com/hohoa/p/5691071.html
https://www.cnblogs.com/ants/p/5732337.html
https://www.cnblogs.com/Burt/p/6566642.html
https://www.cnblogs.com/rabbityi/p/7019662.html
http://blog.csdn.net/jollypigclub/article/details/46862371
ASP.NET Core学习之四 在CentOS上部署.net core的更多相关文章
- CentOS上部署.net core
1.阿里云更换系统安装CentOS7.4 64位版本 2.试用XShell 5 登录服务器 参考https://www.microsoft.com/net/learn/get-started/linu ...
- WTM asp.net core应用程序在Ubuntu上和CentOS上部署
wtm在Ubuntu上和CentOS上部署 项目发布 在Visual Studio中右击Web项目,选择发布,如下图: Ubuntu安装.net core运行时 Ubuntu我是用的Vmware虚拟机 ...
- Net Core应用,在CentOS上运行
Net Core应用,在CentOS上运行 本文主要介绍下运用docker虚拟技术打包Asp.net core应用. Docker作为一个开源的应用容器引擎,近几年得到广泛的应用,使用Docker我们 ...
- 在CentOS 8 上 部署 .Net Core 应用程序
在Centos 8 上 部署 .Net Core 应用程序 -- 记录篇 1.更新dnf 源 1 dnf update 2.安装 Asp.Net Core 运行时 1 dnf install ...
- So Easy - 在Linux服务器上部署 .NET Core App
.NET Core 是微软提供的免费.跨平台和开源的开发框架,可以构建桌面应用程序.移动端应用程序.网络应用程序.物联网应用程序和游戏应用程序等.如果你是 Windows 平台下的 dotnet 开发 ...
- 在CentOS上部署kubernetes1.9.0集群
原文链接: https://jimmysong.io/kubernetes-handbook/cloud-native/play-with-kubernetes.html (在CentOS上部署kub ...
- IIS上部署Net.Core
部署: 1.安装vc_redist.x64vc_redist.x64 2.安装DotNetCore.1.0.0.RC2-WindowsHosting 3.安装DotNetCore.1.0.0-SDK. ...
- Centos 上部署 tomcat7
在 Centos 上部署 tomcat7 搜索tomcat,选下面红色框框的官网 选箭头指着的版本7, 选 tar.gz 格式, 下载完压缩包,使用 ftpx 工具,放在 centos 的 /opt ...
- CentOS上部署Django+Nginx+Uwsgi环境
在CentOS上部署Django+Nginx+Uwsgi环境 奇谭 2016-09-01 评论 Linux python django nginx uwsgi VirtualEnv的作用:创建隔 ...
随机推荐
- java使用普通算法实现99乘法表,使用递归实现99乘法表
public class recursionTest { public static void main(String[] args) { //jiujiu(); m(9); } /* * for循环 ...
- java学习笔记之集合家族2
集合体系 一.数据结构 List集合储存数据结构 <1>堆栈结构 特点:先进后出 <2>队列结构 特点:先进先出 <3>数组结构 特点:查询快,增删慢 <4& ...
- 从开源项目看 Python 单元测试
我觉得以前在我开发程序的时候,除了文档,可能单元测试是另外一个让我希望别人都写,但是自己又一点都不想写的东西.但是,随着开发程序的增多,以及自己对 Bug 的修改的增多,我发现,UT 在很大程度上是对 ...
- JAVA入门[7]-Mybatis generator(MBG)自动生成mybatis代码
一.新建测试项目 新建Maven项目MybatisDemo2,修改pom.xml引入依赖.dependencies在上节基础上新增 <dependency> <groupId> ...
- 你懂AI吗(1)
那场载入史册的战争之后,AI成为地球的主人已经快一个世纪了. 随着见证这场战争的那一代人基本消失,除了几个要堵上人类的尊严,颠覆AI的邪恶统治的组织外,现在的人基本已经习惯了这个AI统治的世界. AI ...
- 用node.js实现mvc相册资源管理器
摘要:通过前两天的学习我大概学了了,用formidable模块文件上传,express框架,以及利用fs模块进行文件读取,今天我学习了如何用这些知识来制作相册,暂没有数据库,所以做的也是本地的资源管理 ...
- Intellij IDEA 使用小结
快捷键 核心快捷键 IntelliJ IDEA 作为一个以快捷键为中心的 IDE,为大多数操作建议了键盘快捷键.在这个主题中,您可以找到最不可缺少的列表,使 IntelliJ IDEA 轻松实现第一步 ...
- EJB:快速入门
1.EJB概念 2.EJB体系结构 3.SessionBean 3.1 SessionBean 服务端组件 3.2 Remote 与 Local 模式 3.3 Client访问处理流程 3.3.1 R ...
- 「mysql优化专题」单表查询优化的一些小总结,非索引设计(3)
单表查询优化:(关于索引,后面再开单章讲解) (0)可以先使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的.这可以帮我们分析是查询语句或是表结构的性能瓶颈. (1)写sql ...
- 微信小程序路过
应该算是入门篇, 从我怎么0基础然后沿着什么方向走,遇到的什么坑,如何方向解决,不过本人接触不是很多,所以也就了解有限. 小程序的前提: 1.小程序大小不允许超过2M.(也就是本地图片,大图精图不要在 ...