Asp.Net Core 开发并部署到Ubuntu
涉及:Asp.Net Core Webapi Ubuntu服务器 Nginx代理
Asp.Net Core WebApi 开发
创建Asp.Net Core WebApi程序
创建一个简单的测试案例就可以了,
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace Hubert.Api.Demo.Controllers { public class DemoController : BaseController { // GET: api/Demo [HttpGet] public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET: api/Demo/5 [HttpGet("{id}", Name = "Get")] public string Get(int id) { return "value"; } // POST: api/Demo [HttpPost] public void Post([FromBody] string value) { } // PUT: api/Demo/5 [HttpPut("{id}")] public void Put(int id, [FromBody] string value) { } // DELETE: api/ApiWithActions/5 [HttpDelete("{id}")] public void Delete(int id) { } } }
BaseController 代码 这里可以写一些公共的方法参数等
using Microsoft.AspNetCore.Mvc; namespace Hubert.Api.Demo.Controllers { [Route("api/[controller]/[action]")] [ApiController] public class BaseController : ControllerBase { } }
发布Asp.Net Core WebApi程序
可以先测试一下 部署到IIS需要安装 AspNetCoreModule 并且应用池设置无托管即可;
部署Asp.Net Core WebApi 到Ubuntu服务器
首先安装Asp.Net Core SDK
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-bionic-prod bionic main" > /etc/apt/sources.list.d/dotnetdev.list' sudo apt-get install apt-transport-https sudo apt-get update sudo apt-get install dotnet-sdk-2.1.1
查看DotNet版本
dotnet --version
上传发布文件到Ubuntu
创建文件夹命令 mkdir 上传文件 rz
上传成功之后 运行该程序
通过Http://Ip地址:5005 测试访问
安装Nginx并对其做相应配置
安装Nginx sudo apt-get install nginx 查看Nginx版本 nginx -v 启动nginx 或者重启nginx service nginx start service nginx restart 如果端口号被占用则会提示 nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-enabled/default:21 nginx: configuration file /etc/nginx/nginx.conf test failed 这个时候你需要 查看端口是否被占用 netstat -ntpl 杀死这个进程 kill 关于80端口的进程 然后在启动nginx就可以啦
创建一个关于dotnetcore webapi的配置文件;我这里已经创建好了
输入命令vi 编辑这个配置文件
vi hubert
还需要在nginx配置文件中引入Hosts文件夹的配置
在http里配置
include /etc/nginx/hosts/*;
然后重启nginx
service nginx restart
通过域名访问