如何将Net Core Web Api项目在NginX下发布并优化长尾关键词配置?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1101个文字,预计阅读时间需要5分钟。
前言:本文将介绍Net Core的一些基础知识以及如何在NginX下发布Net Core的WebApi项目。
测试环境:操作系统:Windows 10;开发工具:Visual Studio 2019;框架:Net Core 3、Net Core WebApi项目创建:首先创建一个名为N的项目。
前言
本文将介绍Net Core的一些基础知识和如何NginX下发布Net Core的WebApi项目。
测试环境
- 操作系统:windows 10
- 开发工具:visualstudio 2019
- 框架:Net Core 3
Net Core WebApi项目创建
首先创建一个Net Core WebApi项目——CorePublishForNginX。
首先选择Asp.Net Core Web应用程序,如下图:
然后修改项目名称,如下图:
然后选择Api选项,如下图:
项目创建完成,如下图:
代码介绍
Controller
项目创建完成后,我们可以看到,里面内置了一个Api Controller——WeatherForecastController,代码如下:
[ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; private readonly ILogger<WeatherForecastController> _logger; public WeatherForecastController(ILogger<WeatherForecastController> logger) { _logger = logger; } [HttpGet] public IEnumerable<WeatherForecast> Get() { var rng = new Random(); return Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = rng.Next(-20, 55), Summary = Summaries[rng.Next(Summaries.Length)] }) .ToArray(); } }
如上述代码所示,首先我们看到该Controller继承的类是ControllerBase。(在NetFramework里继承的WebApi继承的是ApiController,Mvc继承的是Controller)
然后,我们发现Controller有一个构造函数,并且还有一个入参;我们知道Controller的调用是框架的内部机制,也就是说,框架在调用Controller时会给他一个入参。
通过名称我们可以发现,这个是一个日志入参,即,Core调用Controller时,为我们内置了一个日志记录对象。
这里我们不需要使用日志,所以可以先把这个构造函数删除。
接下来,我们看到了Api请求实现的主体,Get请求。
主体现的很简单,就是方法名用Get,然后方法头上加HttpGet特性。(Get方法名是可以修改的,因为一个WebApi里只支持一个Get请求,所以只要方法加了HttpGet特性,就会被视为默认的Get方法)
Get请求里实现了一个实体集合的组件,即请求该Controller会得到一个实体集合的数组。
Program
学习完Controller,我们进入Program.cs文件,我们做下简单的修改,设置一下Kestrel的启动端口。
修改CreateHostBuilder代码如下:
public static IHostBuilder CreateHostBuilder(string[] args) { return Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults( webBuilder => { //设置项目的启动文件 webBuilder.UseStartup<Startup>(); //Kestrel的默认监听端口是127.0.0.1:5180/weatherforecast。
如上图所示,访问成功。
PS:这里需要注意,CMD窗口不能关闭,一旦关闭,网站会停止运行,因为CMD窗口是网站的宿主进程。
NginX下发布Net Core Web Api
现在我们使用NginX的反向代理,将客户的请求发送到NetCoreWebApi项目中。
首先进入官网下载NginX,点击nginx/windows-1.17.8,下载Windows版本的NginX,如下图所示。官网地址:nginx.org/en/download.html
下载完成后,解压缩到一个英文目录下,内容如下图所示。
conf文件夹为配置,我们双击进入conf文件夹,如下图所示。
在文件夹内找到配置文件nginx.conf,用记事本将其打开,然后在这里进行相应的配置。
上文中,我们的WebApi项目监听的是5180端口,而NginX启动后默认监听的是80端口;也就是说,我们需要在NginX的配置文件中,将80端口监听到的消息,转发到5180端口上。
打开nginx.conf文件,修改内容如下图所示:
修改完成后,返回上级目录,运行NginX.exe;这里需要注意,NginX是没有前台界面的,所以,是否运行成功,要去任务管理中查看,看是否有NginX.exe的进程。
运行完NginX.exe,我们访问下127.0.0.1/weatherforecast,看看是否将80端口的消息发送到了5180端口。
运行结果如上图所示,消息成功的被发送到了5180端口。
PS:在nginx.conf里,注释符号为#。location后面有个斜杠“/”,斜杠代表根目录,想指向子目录,只需在斜杠后加目录名,如/admin。
----------------------------------------------------------------------------------------------------
到此详解Net Core Web Api项目与在NginX下发布就讲解完了。
代码已经传到Github上了,欢迎大家下载。
Github地址:github.com/kiba518/CorePublishForNginX
到此这篇关于Net Core Web Api项目与在NginX下发布的方法的文章就介绍到这了,更多相关Net Core Web Api NginX下发布内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!
作者:kiba518
www.cnblogs.com/kiba/p/12286225.html
本文共计1101个文字,预计阅读时间需要5分钟。
前言:本文将介绍Net Core的一些基础知识以及如何在NginX下发布Net Core的WebApi项目。
测试环境:操作系统:Windows 10;开发工具:Visual Studio 2019;框架:Net Core 3、Net Core WebApi项目创建:首先创建一个名为N的项目。
前言
本文将介绍Net Core的一些基础知识和如何NginX下发布Net Core的WebApi项目。
测试环境
- 操作系统:windows 10
- 开发工具:visualstudio 2019
- 框架:Net Core 3
Net Core WebApi项目创建
首先创建一个Net Core WebApi项目——CorePublishForNginX。
首先选择Asp.Net Core Web应用程序,如下图:
然后修改项目名称,如下图:
然后选择Api选项,如下图:
项目创建完成,如下图:
代码介绍
Controller
项目创建完成后,我们可以看到,里面内置了一个Api Controller——WeatherForecastController,代码如下:
[ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; private readonly ILogger<WeatherForecastController> _logger; public WeatherForecastController(ILogger<WeatherForecastController> logger) { _logger = logger; } [HttpGet] public IEnumerable<WeatherForecast> Get() { var rng = new Random(); return Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = rng.Next(-20, 55), Summary = Summaries[rng.Next(Summaries.Length)] }) .ToArray(); } }
如上述代码所示,首先我们看到该Controller继承的类是ControllerBase。(在NetFramework里继承的WebApi继承的是ApiController,Mvc继承的是Controller)
然后,我们发现Controller有一个构造函数,并且还有一个入参;我们知道Controller的调用是框架的内部机制,也就是说,框架在调用Controller时会给他一个入参。
通过名称我们可以发现,这个是一个日志入参,即,Core调用Controller时,为我们内置了一个日志记录对象。
这里我们不需要使用日志,所以可以先把这个构造函数删除。
接下来,我们看到了Api请求实现的主体,Get请求。
主体现的很简单,就是方法名用Get,然后方法头上加HttpGet特性。(Get方法名是可以修改的,因为一个WebApi里只支持一个Get请求,所以只要方法加了HttpGet特性,就会被视为默认的Get方法)
Get请求里实现了一个实体集合的组件,即请求该Controller会得到一个实体集合的数组。
Program
学习完Controller,我们进入Program.cs文件,我们做下简单的修改,设置一下Kestrel的启动端口。
修改CreateHostBuilder代码如下:
public static IHostBuilder CreateHostBuilder(string[] args) { return Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults( webBuilder => { //设置项目的启动文件 webBuilder.UseStartup<Startup>(); //Kestrel的默认监听端口是127.0.0.1:5180/weatherforecast。
如上图所示,访问成功。
PS:这里需要注意,CMD窗口不能关闭,一旦关闭,网站会停止运行,因为CMD窗口是网站的宿主进程。
NginX下发布Net Core Web Api
现在我们使用NginX的反向代理,将客户的请求发送到NetCoreWebApi项目中。
首先进入官网下载NginX,点击nginx/windows-1.17.8,下载Windows版本的NginX,如下图所示。官网地址:nginx.org/en/download.html
下载完成后,解压缩到一个英文目录下,内容如下图所示。
conf文件夹为配置,我们双击进入conf文件夹,如下图所示。
在文件夹内找到配置文件nginx.conf,用记事本将其打开,然后在这里进行相应的配置。
上文中,我们的WebApi项目监听的是5180端口,而NginX启动后默认监听的是80端口;也就是说,我们需要在NginX的配置文件中,将80端口监听到的消息,转发到5180端口上。
打开nginx.conf文件,修改内容如下图所示:
修改完成后,返回上级目录,运行NginX.exe;这里需要注意,NginX是没有前台界面的,所以,是否运行成功,要去任务管理中查看,看是否有NginX.exe的进程。
运行完NginX.exe,我们访问下127.0.0.1/weatherforecast,看看是否将80端口的消息发送到了5180端口。
运行结果如上图所示,消息成功的被发送到了5180端口。
PS:在nginx.conf里,注释符号为#。location后面有个斜杠“/”,斜杠代表根目录,想指向子目录,只需在斜杠后加目录名,如/admin。
----------------------------------------------------------------------------------------------------
到此详解Net Core Web Api项目与在NginX下发布就讲解完了。
代码已经传到Github上了,欢迎大家下载。
Github地址:github.com/kiba518/CorePublishForNginX
到此这篇关于Net Core Web Api项目与在NginX下发布的方法的文章就介绍到这了,更多相关Net Core Web Api NginX下发布内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!
作者:kiba518
www.cnblogs.com/kiba/p/12286225.html

