一、安装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的更多相关文章

  1. CentOS上部署.net core

    1.阿里云更换系统安装CentOS7.4 64位版本 2.试用XShell 5 登录服务器 参考https://www.microsoft.com/net/learn/get-started/linu ...

  2. WTM asp.net core应用程序在Ubuntu上和CentOS上部署

    wtm在Ubuntu上和CentOS上部署 项目发布 在Visual Studio中右击Web项目,选择发布,如下图: Ubuntu安装.net core运行时 Ubuntu我是用的Vmware虚拟机 ...

  3. Net Core应用,在CentOS上运行

    Net Core应用,在CentOS上运行 本文主要介绍下运用docker虚拟技术打包Asp.net core应用. Docker作为一个开源的应用容器引擎,近几年得到广泛的应用,使用Docker我们 ...

  4. 在CentOS 8 上 部署 .Net Core 应用程序

    在Centos 8 上 部署 .Net Core 应用程序     -- 记录篇 1.更新dnf 源 1 dnf update 2.安装 Asp.Net Core 运行时 1 dnf install ...

  5. So Easy - 在Linux服务器上部署 .NET Core App

    .NET Core 是微软提供的免费.跨平台和开源的开发框架,可以构建桌面应用程序.移动端应用程序.网络应用程序.物联网应用程序和游戏应用程序等.如果你是 Windows 平台下的 dotnet 开发 ...

  6. 在CentOS上部署kubernetes1.9.0集群

    原文链接: https://jimmysong.io/kubernetes-handbook/cloud-native/play-with-kubernetes.html (在CentOS上部署kub ...

  7. IIS上部署Net.Core

    部署: 1.安装vc_redist.x64vc_redist.x64 2.安装DotNetCore.1.0.0.RC2-WindowsHosting 3.安装DotNetCore.1.0.0-SDK. ...

  8. Centos 上部署 tomcat7

     在 Centos 上部署 tomcat7 搜索tomcat,选下面红色框框的官网 选箭头指着的版本7, 选 tar.gz 格式, 下载完压缩包,使用 ftpx 工具,放在 centos 的 /opt ...

  9. CentOS上部署Django+Nginx+Uwsgi环境

    在CentOS上部署Django+Nginx+Uwsgi环境 奇谭  2016-09-01 评论  Linux  python django nginx uwsgi VirtualEnv的作用:创建隔 ...

随机推荐

  1. PHP 面试时常考的文件操作函数

    前两天面试的时候,笔试要求写一些文件操作类函数,什么遍历目录获取文件扩展名之类的,回来后大致总结了一下PHP中一些常见的文件操作函数分享一下. 1.使用递归删除目录及目录下所有文件的方法. funct ...

  2. PHP基础 windows环境下安装Apache Mysql PHP

    本篇文章主要是讲一下我自己安装wamp环境的一些步骤和见解,前方多图预警,慎入!!!!! PHP运行环境  : Linux下的三种安装方式:源码包安装.rpm包安装.集成环境安装(lnmp) wind ...

  3. PF_RING install in centos7

    很多centos7是最小化安装. 这样很多kernel就没有安装全,而且很多开发库也没有. 在安装PF_RING过程中,会缺少很多依赖. 首先安装依赖包: yum -y install numactl ...

  4. maven项目部署对Oracle jar包的处理

    1.正常情况下,我们是访问不到ojdbc.jar的,需要建立一个本地仓. 2.先找到自己的Oracle中ojdbc.jar将其放入到   C:\Users\Administrator  这个目录下,然 ...

  5. 【NOI2015】程序自动分析

    https://www.luogu.org/problem/show?pid=1955 并查集+离散化. 先执行所有x=y问题,即合并x和y. 再依次执行所有x!=y问题,即查询x和y是否处于同一集合 ...

  6. C#_表达式目录树的应用

    使用表达式目录树实现两个不同类型的属性赋值: public class People { public int Age { get; set; } public string Name { get; ...

  7. js 消抖(debounce)与节流(throttle)

    前言 故事发生在与大创的又一次撕逼(日常)中,我方坚定的认为:作为社会主义接班人,节流与消抖的界限是明显的,是不容混肴的,是不可侵犯的!对方辩友坚持地觉得:界限是模糊的,行为是暧昧的,性别是可以忽视的 ...

  8. TCP的十一种状态与三次握手分析(有图)

    我们知道TCP是面向连接的,我们只知道有连接断开,其实内部还有一些比较复杂的状态.去了解各个状态之间的切换有助于我们更加深入的了解TCP.下面我们就来分析各个状态. 1.如下图示(图源百度)图中显示出 ...

  9. Loadrunner 中时间戳函数 web_save_timestamp_param(时间返回数值)

    web_save_timestamp_param("tStamp", LAST); lr_output_message("Moon1:%s",lr_eval_s ...

  10. SQL或HQL预编译语句,可以防止SQL注入,可是不能处理%和_特殊字符

    近期项目在做整改,将全部DAO层的直接拼接SQL字符串的代码,转换成使用预编译语句的方式.个人通过写dao层的单元測试,有下面几点收获. dao层代码例如以下 //使用了预编译sql public L ...