这篇文章主要介绍了在Linux系统中以单容器安装Nginx + ASP。网络核心的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
推荐在生产环境中使用反向代理服务器转发请求到红隼Http服务器,实践将Nginx——→ASP。网络核心部署架构容器化的过程。
Nginx→ASP。净Coe部署架构容器化
在码头工人中部署Nginx——→ASP。第NETCore有两种选择,一种是在单容器内部署Nginx + ASP。网的核心,这是本文着重要讲述的,另外一种是以独立容器分别部署Nginx和ASP。网络核心,容器之间通过码头工人内建的网络桥接完成通信(请关注后续博文)。
本次实践将会使用。网络核心CLI创建默认的网络应用
mkdir应用 cd的应用 dotnet新的网络 dotnet恢复 dotnet构建
之后将项目发布到指定目录(dotnet发布),发布产生的文件将会用于镜像打包。
相关教程:Linux视频教程
构建镜像
本次将以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 └──启动。shNginx配置
创建以上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。网络核心的方法