CentOS 7环境下使用Nginx托管.Net Core应用程序

在安装.NET Core之前,您需要注册Microsoft产品Feed。这只需要做一次。首先,注册Microsoft签名密钥,然后添加Microsoft产品Feed

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

2、安装.NET Core SDK

sudo yum update sudo yum install libunwind libicu sudo yum install dotnet-sdk-2.0.0

之后运行命令

dotnet --info

可以查看安装是否成功。至此,.Net Core的安装就完成了。

当然,也可以使用解压安装。到 https://www.microsoft.com/net/download/linux 下载CentOS7对应的sdk压缩包,之后解压到自定义的安装路径。

sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
# 可以设置一下环境变量,也可以采用下面的方式建立软链接,因为
/usr/local/bin 默认包含于$PATH中
sudo ln -s /opt/dotnet/dotnet /usr/local/bin
# 之后运行查看安装结果
dotnet --info

二、编译运行项目

1、新建一个mvc项目

dotnet new mvc -o ntmvc

如下图所示:

CentOS 7环境下使用Nginx托管.Net Core应用程序

查看ntmvc文件夹 ,可以发现,一个mvc项目的模板已经建好了,如下:

CentOS 7环境下使用Nginx托管.Net Core应用程序

2、修改   Startup.cs 文件

可以使用vscode直接修改远程计算机或者是虚拟机中的文件,具体参考 

由于后面要用到nginx搭建反向代理,在此处修改一下Startup.cs文件中的代码,添加引用 using Microsoft.AspNetCore.HttpOverrides;

之后再在 Startup.cs 文件的 Configure 方法中添加一段代码(具体参见下面完整的Startup.cs文件):

using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; //添加引用 using Microsoft.AspNetCore.HttpOverrides; namespace ntmvc { public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); //添加下面的代码 app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }); app.UseAuthentication(); } } }

3、生成项目

首先切换到项目目录ntmvc,之后运行下面的命令

dotnet publish -c Release

如下所示:

CentOS 7环境下使用Nginx托管.Net Core应用程序

运行命令之后,项目目录中会多出一个bin文件夹

CentOS 7环境下使用Nginx托管.Net Core应用程序

在bin文件夹中会包含Release文件夹,在Release文件夹中的netcoreapp2.0文件夹中,会包含可以发布的内容,即publish文件夹。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a69d38a00444bd52fb763d7d93126fb5.html