自从.net core出现的时候,就知道c#的代码居然能后运行到Linux上面,以前都没想过居然这么牛逼,所以很早就想学习怎样部署上去,直到现在.net core都出现2.2了,才花时间去接触,说实话,第一次接触,太多的坑在这个上边了,途中还走了很多弯路...现在把最后总结的流程简单的记录下来

一 丶下载vmware Workstation (我的虚拟机用的VM所以这里就只讲了VM)  

这里下载,这个是官网,下载需要注册,尽量不要再其他地方下载,可能会附带一些不可描述的东西

(安装过程就省略了,你们这么聪明,肯定不需要了)

二丶下载一个centos 7.0镜像文件(版本看你心情),并且安装在虚拟机上面

这里下载,官网有时候很卡,耐心等一下,这里有

CentOS-7-DVD版本:DVD是标准安装盘

CentOS-7-Everything版本:对完整版安装盘的软件进行补充,集成所有软件

CentOS-7-Minimal版本:迷你精简版

如果只是为了发布.net core的话,我们用迷你版就行了,比较小,功能也能够满足,下载保存到固定的文件夹

接下来就是在VM上面装centos了(你们这么聪明,那我就把简单的步骤省略,还剩重要位置的几张图)

新建一个

这个磁盘大小选个30G应该够用了 ...

记得在这里配置磁盘大小,点下一步还有root密码

成功安装之后,使用root登录  (输入密码时是隐藏的)

由于装的迷你版本的,里面应该不存在网卡驱动,可以用ping baidu.com和ifconfig两个命令测试一下

这里要安装一下

1.进入网卡地址   cd  /etc/sysconfig/network-scripts

2. 编辑   vi ifcfg-ens33 将ONBOOT改为yes, 然后退出保存(esc+:wq)

3. 退出之后重启网卡 service network restart

4.安装包 sudo yum install net-tools  ,中途记得输入y确认

现在ok了,这个是你的IP

三丶 下载putty,下载filezilla(都去官网)

可以不用putty,但是这个比虚拟机操作更方便,最主要是可以复制粘贴

下载filezilla,filezilla就是一个免费开源的ftp软件,便于我们把.net core发布文件上传到Centos中,直接用centos的ip还有root账号连接,端口用22,之后就可以上传文件了

四 安装dotnet core和nginx环境 ,配置nignx,在centos 运行.net core

根据官网进行安装: https://dotnet.microsoft.com/download/linux-package-manager/centos/sdk-current,记得linux选择centos版本

安装成功后随便用一个命令检测是否安装成功,例如: dotnet --version

接着继续安装nginx反向代理服务器,用于映射端口方便我们访问

1. 添加nginx存储库:   sudo yum install epel-release

2. 安装ngingx:    sudo yum install nginx

3. 启动nginx:  sudo systemctl start nginx

4. 启动防火墙允许http后台https访问

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

(如果想在系统启动时运行nginx,运行命令:sudo systemctl enable nginx)

直接在本机访问我们上面虚拟机80端口的地址,这里是192.168.64.128,就可以看见nginx界面了

vs创建一个.net core例子,记得在program.cs里面指定路由地址

接着发布到指定文件夹,使用FileZilla上传到centos指定位置,我这里上传到/home/hello里面的

在centos查看一下文件是否存在

可以看到文件已经过来了,接下来运行起来 dotenet Test.dll

运行成功后,不能按Ctrl+z,否则进程会被暂停,外部访问会出现

这里,我们重新打开一个putty,用root账号连接上centos

进入nginx配置的默认菜单:cd /etc/nginx

编辑nginx.conf文件,屏蔽所有默认的80端口反向代理

并且加入自己的反向代理用80端口指向5000

重新加载并且重启nginx

nginx -s reload

systemctl restart nginx

好了现在就可以在本机访问了

PS:

1. 如果出现502

原因:SELinux配置问题。 
解决:关闭SELinux。 
输入:sestatus,如果SELinux status: enabled ,表示开启,输入vi /etc/selinux/config 修改配置:SELINUX=disabled。

然后重启CentOS

2. 如果出现

Job for nginx.service failed because the control process exited with error code

出现这个错误则是default.conf或nginx.conf文件,查看是否少写了一个分号,确实不行就卸载nginx再重装

可能会需要用到的一些命令:

nginx停止:

ps -ef|grep nginx 查看所有进程

kill -9 PID 杀死进程
nginx重启:

sudo service nginx restart

nginx卸载:

yum remove nginx   记得删除nginx相关的所有文件

看下是否删除成功  which nginx

查看某个端口的进程

netstat   -anp   |   grep  端口号

杀掉进程: kill -9 PID

访问网址:  curl  网址  (curl http://192.168.64.128)

dotnet core2.2 通过虚拟机发布到CentOS上的更多相关文章

  1. ASP.NET Core部署系列二:发布到CentOS上

    前言: 在上一节中,通过一系列的步骤,已经将项目部署到IIS上,虽然遇到了一些问题,但最终解决并成功运行了.而在这一节中,将尝试通过linux系统的环境下,部署项目,实现Net Core跨平台的亮点. ...

  2. .net core web发布到CentOS汇总

    直到今天我的博客终于可以见世人了,中间懒了很长一段时间,什么也没干,也没怎么学习,前段时间也是各种折腾,无心学习.本篇主要汇总下从一开始到现在遇到的问题汇总,作为学习笔记.我的博客就是我的学习笔记,因 ...

  3. 【新手出发】从搭虚拟机开始,一步一步在CentOS上跑起来.Net Core程序

    文章背景 微软6月26号发布core 1.0版本后,园子里关于这方面的文章就更加火爆了,不管是从文章数量还是大家互动的热情来看,绝对是最热门的技术NO.1.我从去年底开始接触.net core到现在也 ...

  4. Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一)

    环境 本地 win7 服务器:Virtual Box 上的Centos ssh工具: Xshell 文件传输: xftp 1.在本地创建asp.net core应用发布 1.1 使用Vs2017 新建 ...

  5. Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践

    原文:Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践 环境 本地 win7 服务器:Virtual Box 上的Centos ssh工具: Xshell 文件传输 ...

  6. Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

    原地址:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/05/3001148.html 这篇随笔应该说跟CentOS的学习关系不是很大, ...

  7. ASP.NET Core 2.0 : 九.从Windows发布到CentOS的跨平台部署

    本文聊一下如何在Windows上用VS开发并发布, 然后将其部署到CentOS上.对于我们一些常在Windows上逛的来说,CentOS用起来还真有些麻烦.MSDN官方有篇文章大概讲了一下(链接),按 ...

  8. Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)

    Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 3. Nginx配置反向代理 3.1 cnetos 安装nginx 首先,我们需要在服务器上安装N ...

  9. CentOS7部署Dotnet Core2.1

    前言 笔者在毫无Linux部署.net core的经验下,第一次用了15分钟完成部署,第二次在生产环境用了5分钟.下文将说明如何在CentOS7下完成.NetCore2.1的部署,包括如何创建ASP. ...

随机推荐

  1. Mybatis Hibernate MiniDao 共存

    Mybatis MiniDao共存问题 - 国内版 Binghttps://cn.bing.com/search?q=Mybatis+MiniDao%E5%85%B1%E5%AD%98%E9%97%A ...

  2. python+opencv抠图并旋转(根据坐标抠图)

    import cv2 import numpy as np def subimage(image, center, theta, width, height): theta *= np.pi / 18 ...

  3. ffmpeg编译错误,提示找不到相应的shared libraries :libavdevice.so.53

    解决方法:需要配置响应的环境变量,以便能找到响应的lib库 vi   /etc/ld.so.conf 加入   /usr/local/lib 执行  sudo  ldconfig

  4. 在mac中安装tmux

    在mac 中安装Tmux: 在终端输入如下命令: brew  install tmux Tmux 的快捷键前缀(Prefix) 为了使自身的快捷键和其他软件的快捷键互不干扰,Tmux 提供了一个快捷键 ...

  5. java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Method) at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)

    报错: java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Meth ...

  6. 0.9.0.RELEASE版本的spring cloud alibaba sentinel+feign降级处理实例

    既然用到了feign,那么主要是针对服务消费方的降级处理.我们基于0.9.0.RELEASE版本的spring cloud alibaba nacos+feign实例添油加醋,把sentinel功能加 ...

  7. ES6深入浅出-4 迭代器与生成器-3.生成器 & for...of

    迭代器平时用的很少.但是如果你是写框架的,你会经常用到迭代器. 生成器是专门用来做迭代器的东西 发布器是要产生一个叫做next的对象,如果你要产生这种对象.就可以使用ES6新出的语法. ES6的新语法 ...

  8. Qt编写气体安全管理系统23-类型设置

    一.前言 类型设置这个功能模块大大拓展了整个系统的灵活性,将整个系统中所有用到的控制器型号.探测器数量.探测器型号.气体种类.气体符号都存储到数据库表中,用户在类型设置中可以自由添加删除和修改,这样后 ...

  9. RabbitMQ 入门教程(PHP版) 第三部分:发布/订阅(Publish/Subscribe)

    发布/订阅 在上篇第二部分教程中,我们搭建了一个工作队列.每个任务之分发给一个工作者(worker).在本篇教程中,我们要做的之前完全不一样——分发一个消息给多个消费者(consumers).这种模式 ...

  10. response.getWriter().write的用法

    /** * 获取手机验证码的方法 */ var loopObjBindMobil = null; var secondsBindMobil = 0; function hqBindYzm(moblie ...