首页 > 技术文章 > Linux部署NetCore应用(Ubuntu)

WQ1992 2020-07-31 16:30 原文

创建.net ocre 3.1 版本的站点

 

 

 

新建 一个控制器(API)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace Linux_Test.Controllers
{
  [Route("api/[controller]")]
  [ApiController]
  public class ValuesController : ControllerBase
  {
      [HttpGet("getdate")]
      public string Date()
      {
          return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
      }
  }
}

 

修改 program.cs 文件,设置 运行端口 5002
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

namespace Linux_Test
{
  public class Program
  {
      public static void Main(string[] args)
      {
          CreateHostBuilder(args).Build().Run();
      }

      public static IHostBuilder CreateHostBuilder(string[] args) =>
          Host.CreateDefaultBuilder(args)
              .ConfigureWebHostDefaults(webBuilder =>
              {
                  webBuilder.UseUrls("http://localhost*:5002");
                  webBuilder.UseStartup<Startup>();
              });
  }
}
发布配置

设置运行环境为 Linux 64位

 

 

发布后文件系统

 

 

使用winscp 将文件传输至Linux

切换目录至Linux上的站点文件

 

 

运行项目

使用指令: dotnet + 项目.dll

 

 

 

 

浏览器输入地址

http://192.168.52.130:5002/api/values/getdate

 

 

使用Ctrl+C 退出,在刷新浏览器

 

 

使用 pm2 来守护 .net core 进程

pm2 start 'dotnet Linux-Test.dll' --name api

 

 

 

执行完成后,刷新浏览器

 

 

使用 Nginx 来对kestrel进行反向代理

vim /etc/nginx/sites-available/default 将原有配置注释掉,添加下列配置

server{
  listen 80;
  listen [::]:80;
  location / {
  proxy_pass http://localhost:5002;
  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 -s reload

监听 默认端口 80 ,就不用再输入 5002 端口号

http://192.168.52.130/api/values/getdate

 

 

 

推荐阅读