• ASP.Net Core 运行在Linux(Ubuntu)


    这段时间一直在研究asp.net core部署到linux,今天终于成功了,这里分享一下我的部署过程。

    Linux Disibutaion:Ubuntu 14.04

    Web Server:nginx、Kestrel

    1、安装.net core

    sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
    
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
    
    sudo apt-get update
    
    sudo apt-get install dotnet-dev-1.0.0-preview2.1-003177
    

    2、安装.net core成功之后,新建asp.net core mvc项目

    #新建文件夹hwapp
    mkdir hwapp
    
    #进入hwapp文件夹
    cd hwapp
    
    #新建asp.net core mvc项目
    dotnet new -t web
    
    #还原.net core nuget包
    dotnet restore
    

    3、到这一步还无法发布项目,我们需要安装npm,gulp,bower这三个工具

    #安装npm
    sudo apt-get install npm
    
    #安装gulp
    sudo npm install gulp -g
    
    #安装bower
    sudo npm install bower -g
    

    4、完成之后,就可以对项目进行发布了

    #发布项目,默认发布路径在当前项目下bin/Debug/netcoreapp1.1/publish/
    dotnet publish
    

    5、下面我们就要安装nginx做反向代理

    #安装nginx
    sudo apt-get install nginx
    #启动nginx
    sudo service nginx start
    

    因为要使用nginx做asp.net core网站的反向代理,我们需要修改nginx的默认配置文件/etc/nginx/sites-available/default ,将以下内容替换默认配置:

    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配置是否zhengque
    sudo nginx -t 
    #重新加载nginx配置
    sudo nginx -s reload
    

    6、安装supervisor

    我们部署的网站并不会自己启动并运行,这里我们就需要用到supervisor这个工具,保证网站的启动和持续运行。

    #安装supervisor
    sudo apt-get install supervisor
    

    配置supervisor,进入目录(/etc/supervisor/conf.d/),新建配置文件hwapp.conf,将如下内容复制到文件中

    [program:hwapp]
    command=/usr/bin/dotnet /var/hwapp/publish/hwapp.dll --server.urls:http://*:5000
    directory=/var/hwapp/publish
    autostart=true
    autorestart=true
    stderr_logfile=/var/log/hwapp.err.log
    stdout_logfile=/var/log/hwapp.out.log
    environment=ASPNETCORE_ENVIRONMENT=Production
    user=www-data
    stopsignal=INT
    

    关闭并启动supervisor

    sudo service supervisor stop
    sudo service supervisor start
    

    到此,整个部署流程完成了!

    下图在我部署在linux中的asp.net core网站的访问页面:

  • 相关阅读:
    【刷题】洛谷 P2764 最小路径覆盖问题
    【刷题】BZOJ 3546 [ONTAK2010]Life of the Party
    【刷题】BZOJ 3175 [Tjoi2013]攻击装置
    【刷题】BZOJ 4516 [Sdoi2016]生成魔咒
    【刷题】SPOJ 1811 LCS
    【刷题】洛谷 P3804 【模板】后缀自动机
    【刷题】SPOJ 8222 NSUBSTR
    (98)Wangdao.com_第三十天_拖拉事件
    ECMA Script 6_必须要知道的基础
    (97)Wangdao.com_第三十天_触摸事件
  • 原文地址:https://www.cnblogs.com/rampb/p/6122310.html
Copyright © 2020-2023  润新知