美文网首页
在CentOS7中部署.net core2.0项目

在CentOS7中部署.net core2.0项目

作者: StrongAndyZhang | 来源:发表于2018-01-22 19:54 被阅读0次

    【环境说明】

     *服务器系统:CentOS7
     *相关工具:Xshell、WinSCP
     *服务器软件软件:.netcore2.0、nginx
    

    【准备.net core2.0项目发布包】
    使用VS2017的发布功能生成Release包。发布的方式有两种:自宿主式和便携式,我们采用便携式,原因有二:

    1.便携式的性能比自宿主式的高
    2.微软建议使用便携式
    
    deploy.PNG

    【在CentOS7中安装.Net Core2.0 SDK】

    1.sudo yum install libunwind libicu(安装libicu依赖)
    2.curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131(下载sdk压缩包)
    3.sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet(解压缩)
    4.sudo ln -s /opt/dotnet/dotnet /usr/local/bin(创建链接)
    5.输入 dotnet –info 来查看是否安装成功
    
    dotnetcore.PNG

    【部署.Net Core2.0项目】

    1.使用WinSCP将发布包放到linux服务器上的/home/wwwroot/目录下,例:/home/wwwroot/DotNetCoreWeb。
    2.使用命令运行项目:dotnet /home/wwwroot/DotNetCoreWeb/Portal.dll,其中Portal.dll是Web应用的入口程序,默认端口是5000。
    
    run.PNG

    【安装与配置Nginx】

    • 安装Nginx
    1.curl -o  nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    2.rpm -ivh nginx.rpm
    3.yum install nginx
    
    • 配置Nginx,修改 /etc/nginx/conf.d/default.conf 文件。
    server {
         listen 4000;
         location / {
            proxy_pass http://localhost:5000;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection keep-alive;
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }
    
    • 重启Nginx服务
      至此.Net Core2.0项目在Linux环境中的配置工作基本完毕。但是存在一个问题,就是我之前直接在命令行里使用''dotnet Portal.dll''的方式启动的应用,如果我一旦按Ctrl+Z就shut down了应用,这样导致我不能使用命令行输入别的指令干别的事情。所以这里我们需要一个守护进程,让应用独立的运行。

    【安装Supervisor】

    1.yum install python-setuptools
    2.easy_install supervisor
    

    【配置Supervisor】

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

    修改supervisord.conf文件,将文件尾部的配置

    ;[include]
    ;files = relative/directory/*.ini
    

    改成

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

    【配置对ASP.NET Core应用的守护】
    在/etc/supervisor/conf.d/目录下创建一个DotNetCoreWeb.conf文件,内容大致如下:

    [program:DotNetCoreWeb]
    command=dotnet Portal.dll ; 运行程序的命令
    directory=/home/wwwroot/DotNetCoreWeb/ ; 命令执行的目录
    autorestart=true ; 程序意外退出是否自动重启
    stderr_logfile=/var/log/DotNetCoreWeb.err.log ; 错误日志文件
    stdout_logfile=/var/log/DotNetCoreWeb.out.log ; 输出日志文件
    environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
    user=root ; 进程执行的用户身份
    stopsignal=INT
    

    运行supervisord,查看是否生效:

    supervisord -c /etc/supervisor/supervisord.conf
    ps -ef | grep DotNetCoreWeb
    

    至此关于ASP.NET Core应用程序的守护即配置完成。

    相关文章

      网友评论

          本文标题:在CentOS7中部署.net core2.0项目

          本文链接:https://www.haomeiwen.com/subject/kfsraxtx.html