在Linux系统中以单容器安装Nginx + ASP。网络核心的方法

  介绍

这篇文章主要介绍了在Linux系统中以单容器安装Nginx + ASP。网络核心的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

推荐在生产环境中使用反向代理服务器转发请求到红隼Http服务器,实践将Nginx——→ASP。网络核心部署架构容器化的过程。

Nginx→ASP。净Coe部署架构容器化

在码头工人中部署Nginx——→ASP。第NETCore有两种选择,一种是在单容器内部署Nginx + ASP。网的核心,这是本文着重要讲述的,另外一种是以独立容器分别部署Nginx和ASP。网络核心,容器之间通过码头工人内建的网络桥接完成通信(请关注后续博文)。

在Linux系统中以单容器安装Nginx + ASP。网络核心的方法本次实践将会使用。网络核心CLI创建默认的网络应用
mkdir应用   cd的应用   dotnet新的网络   dotnet恢复   dotnet构建

之后将项目发布到指定目录(dotnet发布),发布产生的文件将会用于镜像打包。

相关教程:Linux视频教程

在Linux系统中以单容器安装Nginx + ASP。网络核心的方法构建镜像

本次将以ASP。NETCore运行时图像【mcr.microsoft.com/dotnet/core/aspnet:2.2】作为基础镜像,该镜像包含。净核心运行时,ASP。核心网框架组件,依赖项,该镜像为生产部署做了一些优化。

坑1:本次部署的是web应用程序,不要使用【mcr.microsoft.com/dotnet/core/runtime:2.2】作为基础镜像,启动容器会报错:

是不可能找到任何兼容的框架版本

指定的框架& # 39;Microsoft.AspNetCore.App& # 39;,版本& # 39;2.2.0 # 39;没有发现。

-检查应用程序依赖关系和目标框架版本安装在:

/usr/share/dotnet/

-安装。net核心先决条件可能有助于解决这个问题:

https://go.microsoft.com/fwlink/?LinkID=798306& clcid=0 x409

, . net框架和核心SDK可以安装:https://aka.ms/dotnet-download

因为该基础镜像不包含ASP。核心网框架组件。

本次Dokefile的定义将会包含nginx,在容器内启用nginx标准配置代理请求到红隼:

 

1号线,,,,指定基础镜像

3 - 4行,,从Debian软件包管理存储安装Nginx

第6 - 7行,,设置工作目录、放置ASP。网络核心应用部署包

行9,设置启动脚本

12 - 13行设置nginx配置文件

15 - 16行设置ASP。NETCore红隼在5000端口上监听,暴露于5000年80年端口给容器外部

第18行稍后给出启动脚本

提示:需要理解容器内是一个独立的linux环境,Dockfile中公开用于指示容器打算暴露的端口。

,,,,这里可只暴露80端口给外部,但是必须给ASPNETCORE_URLS定义一个非80端口,作为容器内红隼监听端口。

最终(树- l 1)输出的应用目录结构如下

。   ├──app.csproj   ├──appsettings.Development.json   ├──appsettings.json   ├──本   ├──Dockerfile   ├──nginx.conf   ├──obj   ├──Program.cs   ├──属性   ├──Startup.cs   └──启动。sh
在Linux系统中以单容器安装Nginx + ASP。网络核心的方法 Nginx配置

创建以上Dockerfile中需要的Nginx配置文件,在同一目录,vim Nginx。参看创建文件:

worker_processes 4;   事件{worker_connections 1024;}   http {   sendfile alt="在Linux系统中以单容器安装Nginx + ASP。网络核心的方法">启动脚本

对于码头工人容器,只能使用一个CMD(或入口点定义),但是这种反向代理配置需要启动Nginx和红隼,所以我们定义一个脚本去完成这两个任务

# !/bin/bash   服务nginx开始   dotnet/应用程序/应用程序。dll

在Linux系统中以单容器安装Nginx + ASP。网络核心的方法