Linux部署NetCore应用(Ubuntu)
新建 一个控制器(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