zoukankan      html  css  js  c++  java
  • ASP.NET Core Linux 发布

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

      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 80;
          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=80/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.2.tar.gz
      cd supervisor-3.3.2
      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.10-1.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

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

  • 相关阅读:
    python常见错误
    接口自动化常用断言方法python
    Mysql2docx自动生成数据库说明文档
    常用的实用小工具
    移动App专项测试
    AndroidStudio 快捷键(最实用的20个)(转)
    Linux常用命令大全(非常全!!!)(转)
    Fiddler使用教程(转)
    Subversion Edge
    杂点
  • 原文地址:https://www.cnblogs.com/spaceud/p/7074872.html
Copyright © 2011-2022 走看看