这篇博客参考了以下文章:

  1、http://www.cnblogs.com/ants/p/5732337.html

  2、http://www.linuxidc.com/Linux/2016-11/137010.htm

  大体类似,只是在发布期间遇到一些问题,做了一些记录。可能其他人遇到的问题都不尽相同,可以参考其他两篇文章。

配置:

  1. 服务器:centos7(hyper虚拟机)
  2. 相关工具:WinSCP(ftp工具),PuTTY
  3. 开发工具:vs2017
  4. 相关软件:nginx、supervisor

概述:

  请注意博客发布的时间,现在是asp.net core 的1.0版本,在linux 上,微软官方推荐nginx 做web服务器,监听80端口,然后转发到asp.net core站点上,asp.net core 站点用supervisor 守护。

准备:

  vs2017 新建一个空的asp.net core 项目,然后以文件系统方式发布项目,确认本地运行一切正常。

第一步: 安装centos,.NET Core SDK

  • 安装centos
  • 安装.NET Core SDK 
    •   首先安装依赖  输入命令

      sudo yum install libunwind libicu 

    • 下载sdk  地址:https://www.microsoft.com/net/download/linux   选择centos7.1的,下载完成后通过winscp 上传到 centos上(注意上传的位置)

    • 注意下载后的文件名称以及上传的目录地址。
    • 创建文件夹: 
      sudo mkdir -p /opt/dotnet

      解压缩:

      sudo tar zxf dotnet.tar.gz -C /opt/dotnet

      创建连接:

    • sudo ln -s /opt/dotnet/dotnet /usr/local/bin

      输入:

      dotnet --info

             

     到此SDK就安装成功了!!

第二步:上传ASP.NET Core

  • 用winscp将文件 上传到/home/yin/wwwroot/
  • 在wwwroot文件夹下 执行:
    dotnet demoweb.dll

    注意吧程序集名称换成自己本地的程序集名称

  • 第三步:配置nginx

  • 采用源码安装方式安装Nginx
  • 下载地址:https://nginx.org/download/nginx-1.12.0.tar.gz    注意下载的时候选择对应的版本号
  • 执行以下命令
  • tar -zxvf nginx-1.12.0.tar.gz
    cd nginx-1.12.0
    ./configure
    make
    sudo make install

    注意如果./configure 失败,大多是没有安装编译工具,执行:

    yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

    将nginx执行路径加到path环境变量上,避免每次启动nginx 都需要在nginx目录下

  • vi ~/.bashrc

    添加

    export PATH="/usr/local/nginx/sbin:$PATH"

    然后输入以下命令来应用:

    source ~/.bashrc

    修改nginx配置文件:

    vi /usr/local/nginx/conf/nginx.conf

    配置如下:

    server {
    listen ;
    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:

    nginx -s reload

    开放端口号(管理员操作):

    firewall-cmd --zone=public --add-port=/tcp --permanent
    systemctl restart firewalld

    执行:

    dotnet /home/yin/wwwroot/demoweb.dll

    到这里就可以访问了^.^

第四步:安装supervisor

    我们需要监听asp.net core站点的运行情况,如果发生异常需要自动重启,为了解决这个问题我们需要安装supervisor。

  • 下载源码,下载地址:https://pypi.python.org/packages/7b/17/88adf8cb25f80e2bc0d18e094fcd7ab300632ea00b601cbbbb84c2419eae/supervisor-3.3.2.tar.gz
  • 上传到服务器,执行命令:
    tar zxvf  supervisor-3.3..tar.gz
    cd supervisor-3.3.
    sudo python setup.py install
  • 安装过程中可能会提示:meld3>=0.6.5的错误
  • 解决办法:
    wget http://dl.fedoraproject.org/pub/epel/7/x86_64/p/python-meld3-0.6.10-1.el7.x86_64.rpm
    sudo rpm -ivh python-meld3-0.6.-.el7.x86_64.rpm

    配置supervisor:

    mkdir /etc/supervisor
    
    echo_supervisord_conf > /etc/supervisor/supervisord.conf

    修改supervisord.conf:

    vi /etc/supervisor/supervisord.conf

    增加如下内容:

    [include]
    files = conf.d/*.conf

    创建配置文件demoweb.conf:

    mkdir conf.d
    vi demoweb.conf

    增加如下内容:

    [program:demoweb]
    command=dotnet demoweb.dll
    directory=/home/yin/wwwroot/
    autorestart=true
    stderr_logfile=/var/log/demoweb.err.log
    stdout_logfile=/var/log/demoweb.out.log
    environment=ASPNETCORE_ENVIRONMENT=Production
    user=root
    stopsignal=INT

    运行supervisor:

    supervisord -c /etc/supervisor/supervisord.conf

到此大公告成!!访问地址

ASP.NET Core Linux 发布的更多相关文章

  1. ASP.NET CORE Linux发布工具(文件对比 只上传差异文件;自动启停WebServer命令;上传完成自动预热WebServer)

    最近这几日在搞一个小网站:教你啊 :(感兴趣的朋友可以来捧场,在这个网站上有任何消费我都可以退还) 由于更新频繁,手动更新特别麻烦,于是开发了这个小工具 用了一段时间,还是挺顺手的,同时.NET Co ...

  2. ASP.NET Core 网站发布到Linux服务器(转)

    出处;ASP.NET Core 网站发布到Linux服务器 长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台 ...

  3. Asp.net Core 打包发布 (Linux+Nginx)

    如果你觉得如下这些文章对你有帮助,请点击链接支持作者原创 http://www.cnblogs.com/savorboard/ .Net Core SDK 命令介绍   前言 本篇主要介绍 asp.n ...

  4. 将asp.net core站点发布到IIS上遇到的问题

    今天第一次将整个 asp.net core 站点发布到 IIS 上,以前都是发布到 Linux 服务器上. 开始使用 dotnet publish -c release 命令发布,用浏览器访问站点时出 ...

  5. ASP.NET Core IIS发布

    ASP.NET Core应用发布到IIS 官网教程地址:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?vi ...

  6. Windows平台部署 Asp.Net Core 3.1.0,将 ASP.NET Core 应用发布到 IIS ,使用 IIS 在 Windows 上托管 ASP.NET Core

    第一部分:本教程介绍如何在 IIS 服务器上托管 ASP.NET Core 应用. 官方文档地址:https://docs.microsoft.com/zh-cn/aspnet/core/tutori ...

  7. ASP.NET Core 网站发布到Linux服务器

    长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台,这就使得.NET空有一身绝技但无法得到广大的施展空间,.N ...

  8. ASP.NET Core 程序发布到Linux(Centos7)爬坑实战

    前言 前阶段弄了个Linux系统想倒腾倒腾.NET Core,结果看了下网上的资料,大部分都是过期的,走了不少弯路,不过还好,今下午总算捣鼓出来了.Linux命令太多了,唉.血的教训:安装一定要看官网 ...

  9. ASP.NET Core "完整发布,自带运行时" 到jexus

    一.阅读前须知   1.使用 jexus整合asp.net core的优点:       1)支持多站点,同一端口可以同时支持任何多的asp.net core应用程序:      2)应用程序启动.停 ...

随机推荐

  1. 【BZOJ 1007】 [HNOI2008]水平可见直线

    [题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1007 [题意] [题解] 这个人讲得很好 http://blog.csdn.net/o ...

  2. SQL中where语句不能使用直接跟在select后列的别名

    由于select语句的执行顺序为: 1. from语句 2. where语句(结合条件) 3. start with语句 4. connect by语句 5. where语句 6. group by语 ...

  3. Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏

    Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏 即使是如今,非常多初学游戏开发的同学.在谈到Unity的时候.依旧会觉得Unity仅仅能用于制作3D游戏的. 实际上.Unity在2013 ...

  4. Alien Widgets加速了绘制、减少了闪烁。但通过设置,还可以使用Native Widget

    QWidget::createWindowContainer和QWindow::setParentNative Widgets vs Alien Widgets http://doc.qt.io/qt ...

  5. 解决:eth0安装插卡无法自己主动,网卡的配置信息不network-scripts于

    问题方案:eth0安装插卡无法自己主动,网卡的配置信息不network-scripts于 解决: 1>vi /etc/rc.d/rc.loacl 最后加 ifup eth0 2>reboo ...

  6. 百度地图 JavaScript API 极速版 开发体会

    前段时间百度地图API推出了 JavaScript API 极速版 1.0 简单看了一下,从产品定位来说真是挺好. 把开发人员细分成普通web开发人员和移动web开发人员.正好用到了手机地图这块决定尝 ...

  7. uwp - RichEditBox 解决设置字体样式后滚动条自动回滚顶部的问题

    原文:uwp - RichEditBox 解决设置字体样式后滚动条自动回滚顶部的问题 开发中碰到一个问题,当RichEditBox输入的文本达到一定行数的时候,滚动条此时位于底部,改变文本样式(如字体 ...

  8. 微博地址url(id)与mid的相互转换

    关键字:新浪 微博 url id mid 互相转换地址:http://www.cnblogs.com/txw1958/archive/2012/12/07/weibo-id-to-mid.html 通 ...

  9. Win7 64位系统,使用(IME)模式VS2010 编写 和 安装 输入法 教程(1)

    原文:Win7 64位系统,使用(IME)模式VS2010 编写 和 安装 输入法 教程(1) 首先感谢:http://blog.csdn.net/shuilan0066/article/detail ...

  10. 离散时间信号常见函数的实现(matlab)

    1. 单位样本序列 δ(n−n0)={1,n=n00,n≠n0 function [x, n] = impseq(n0, n1, n2) n = n1:n2; x = [n == n0]; 2. 单位 ...