asp.net core框架搭建4-部署IIS/Nginx/Docker
文章目录
- 系列文章
- 一、Linux上部署Nginx
- 1.1 Centos 安装配置环境
- 1.2 使用Systemctl 控制Nginx
- 二、部署IIS
- 三、部署Docker
- 3.1 创建 Dockerfile 文件
- 3.2 构建 Docker 镜像
- 3.3 运行 Docker 容器
- 3.4 检查容器运行情况
- 结束语
作者:xcLeigh
文章地址:https://blog.csdn.net/weixin_43151418/article/details/131459091
asp.net core框架搭建4-部署IIS/Nginx/Docker
,下面让咋们一起来部署webapi到IIS和nginx/Docker,将一步步带着大家,实现目标。所有操作过程将展现在本篇文章,下面咋们一起来实现它吧。
系列文章
- asp.net core 框架搭建1-搭建webapi
- asp.net core 框架搭建2-搭建MVC后台管理系统
- asp.net core 框架搭建3-搭建个人博客,公司官网
- asp.net core 框架搭建4-部署IIS/nguix
一、Linux上部署Nginx
项目使用的是 - asp.net core 框架搭建1-搭建webapi ,这篇文章的项目打包。
1.1 Centos 安装配置环境
//第一步 安装nginx
yum install -y nginx//第二步 安装asp.net core运行包
yum install -y aspnetcore-runtime-6.0.x86_64 //第三步 设置nginx开机自启动
systemctl enable nginx//第四步 打开防火墙端口
firewall-cmd --add-port=80/tcp --permanent //命令永久打开//第五步 运行dotnet应用dotnet Webapi.dll --urls="http://*:5000"
1.2 使用Systemctl 控制Nginx
//启动nginx服务
systemctl start nginx//停止服务
systemctl stop nginx//重新启动服务
systemctl restart nginx//查看所有已启动的服务
systemctl list-units --type=service//查看服务当前状态
systemctl status nginx//设置开机自启动
systemctl enable nginx//停止开机自启动
systemctl disable nginx
二、部署IIS
项目使用的是 - asp.net core 框架搭建1-搭建webapi ,这篇文章的项目打包。
1 安装IIS和Net6 runtime bundle.exe (包括了runtime和iis支持)
2 复制发布的文件文件到网站目录
3 添加上传ssl证书或者使用iis创建自定义证书
4 在iis去除勾选ssl,绑定ssl端口到网站,并配置iis证书
5 测试,输入http://url会直接302跳转到https://url
三、部署Docker
项目使用的是 - asp.net core 框架搭建1-搭建webapi ,这篇文章的项目打包。
3.1 创建 Dockerfile 文件
在ASP.NET Core 项目的根目录下创建一个名为Dockerfile的文件。这个文件用于定义 Docker 镜像的构建规则。
基本内容示例:
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["YourProject.csproj", ""]
RUN dotnet restore "./YourProject.csproj"
COPY..
WORKDIR "/src/YourProject"
RUN dotnet build "YourProject.csproj" -c Release -o /app/buildFROM build AS publish
RUN dotnet publish "YourProject.csproj" -c Release -o /app/publishFROM base AS final
WORKDIR /app
COPY --from=publish /app/publish.
ENTRYPOINT ["dotnet", "YourProject.dll"]
解释:
- 第一部分(
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
):以ASP.NET Core 运行时镜像为基础镜像,版本为 7.0。WORKDIR /app
设置工作目录为/app,EXPOSE 80和EXPOSE 443表示容器内部的应用将在这两个端口上监听。 - 第二部分(
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
):以ASP.NET Core SDK 镜像为基础进行构建。首先设置工作目录为/src,然后复制项目文件(COPY ["YourProject.csproj", ""])
,运行dotnet restore来恢复项目依赖。接着复制整个项目目录(COPY…),并构建项目(RUN dotnet build),输出到/app/build目录。 - 第三部分(
FROM build AS publish
):从构建阶段继承,发布项目到/app/publish目录。 - 第四部分(
FROM base AS final
):从最初的运行时基础镜像继承,将发布的文件复制到运行时容器的/app目录,并设置应用的入口点为dotnet YourProject.dll。
3.2 构建 Docker 镜像
打开命令行工具,导航到包含Dockerfile的项目目录。
运行命令docker build -t your - image - name:tag.
,例如docker build -t myaspnetapp:latest.
。
这个命令会根据Dockerfile中的指令构建一个名为myaspnetapp,标签为latest的 Docker 镜像。构建过程可能需要一些时间,具体取决于项目的大小和网络速度,因为它需要下载基础镜像和相关的依赖。
3.3 运行 Docker 容器
构建好镜像后,可以通过命令docker run -d -p 8080:80 your - image - name:tag
来运行容器。例如docker run -d -p 8080:80 myaspnetapp:latest
。
解释:
- -d表示容器在后台运行(detached mode)。
- -p 8080:80是端口映射,将主机的 8080 端口映射到容器内部的 80 端口。这样,当访问主机的 8080 端口时,请求会被转发到容器内应用监听的 80 端口。
3.4 检查容器运行情况
可以使用docker ps命令来查看正在运行的容器。它会显示容器的 ID、镜像名称、创建时间、状态等信息。
如果应用在容器内出现问题,可以通过docker logs container - id
来查看容器的日志。将container - id
替换为实际的容器 ID,日志信息可以帮助诊断应用启动或运行过程中的错误。
结束语
亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。
愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。
至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。
💢 关注博主 带你实现畅游前后端
🏰 加入社区 带你体验马航不孤单
💯 神秘个人简介 带你体验不一样得介绍
💘 为爱表白 为你那个TA,体验别致的浪漫惊喜
🎀 酷炫邀请函 带你体验高大上得邀请
① 🉑提供云服务部署(有自己的阿里云);
② 🉑提供前端、后端、应用程序、H5、小程序、公众号等相关业务;
如🈶合作请联系我,期待您的联系。
注:本文撰写于CSDN平台,作者:xcLeigh(所有权归作者所有),https://blog.csdn.net/weixin_43151418,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。
亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌
原文地址:https://blog.csdn.net/weixin_43151418/article/details/131459091(防止抄袭,原文地址不可删除)
相关文章:

asp.net core框架搭建4-部署IIS/Nginx/Docker
文章目录 系列文章一、Linux上部署Nginx1.1 Centos 安装配置环境1.2 使用Systemctl 控制Nginx 二、部署IIS三、部署Docker3.1 创建 Dockerfile 文件3.2 构建 Docker 镜像3.3 运行 Docker 容器3.4 检查容器运行情况 结束语 作者:xcLeigh 文章地址:https:/…...

ubuntu中zlib安装的步骤是什么
参考:https://www.yisu.com/ask/40496522.html 在Ubuntu中安装zlib的步骤如下: 打开终端,输入以下命令更新包列表: sudo apt update复制代码 安装zlib库和开发文件: sudo apt install zlib1g zlib1g-dev复制代码 安装完成后&a…...

代码随想录算法训练营第二十天-二叉树-669. 修剪二叉搜索树
对于递归的写法除了大写的服字,无话可说由于是修剪二叉树,所以会有明确的方向性当某一结点小于最小值,说明其左子树全部要修剪掉当某一结点大于最大值,说明其右子树全部要修剪掉 #include <iostream>struct TreeNode {int …...

发现API安全风险,F5随时随地保障应用和API安全
分析数据显示,目前超过90%的基于Web的网络攻击都以API端点为目标,试图利用更新且较少为人所知的漏洞,而这些漏洞通常是由安全团队未主动监控的API所暴露。现代企业需要一种动态防御策略,在风险升级成代价高昂、令人警惕且往往无法…...

【AI学习】2024年末一些AI总结的摘录
看到不少的总结,边摘录边思考。尤其是这句话:“人类真正的问题是:我们拥有旧石器时代的情感、中世纪的制度和神一般的技术”。 22024生成模型综述 来自爱可可-爱生活 2024年见证了AI领域的重大飞跃。从OpenAI的主导地位到Claude的异军突起&…...

ws长时间不发消息会断连吗?
目录 一、ws长时间不发消息会断连吗1. **服务器端的空闲连接处理**2. **客户端的空闲连接处理**3. **网络设备的干预**4. **WebSocket Ping/Pong 机制** 二、为什么在使用nginx代理的情况下,长时间未活动的 WebSocket 连接可能会被中断或关闭1. **Nginx 的超时配置*…...

使用 ASP.NET Core wwwroot 上传和存储文件
在 ASP.NET Core 应用程序中上传和存储文件是用户个人资料、产品目录等功能的常见要求。本指南将解释使用wwwroot存储图像(可用于文件)的过程以及如何在应用程序中处理图像上传。 步骤 1:设置项目环境 确保您的 ASP.NET 项目中具有必要的依…...

【每日学点鸿蒙知识】人脸活体检测、NodeController刷新、自动关闭输入框、Row设置中间最大宽、WebView单例
1、HarmonyOS 人脸活体检测调用? H5调用应用侧方法可参考以下demo: index.ets Web()//注册方法.javaScriptProxy({object: this.testObj,name: "testObjName",methodList: ["getLocationTS"],controller: this.webController})cla…...

Android TV端弹出的PopupWindow没有获取焦点
在 TV 开发中,焦点管理是通过 Focus Navigation 实现的,PopupWindow 默认不接受焦点,导致遥控器无法选择弹窗内的控件。这是因为 PopupWindow 默认不会将焦点传递到其内容视图上。 要解决问题,可以通过以下步骤调整 PopupWindow …...

从0开始的docker镜像制作-ubuntu22.04
从0开始的docker镜像制作-ubuntu22.04 一、拉取基础ubuntu22.04镜像二、进入拉取的docker镜像中,下载自己需要的安装包三、安装需要的系统软件四、打包现有镜像为一个新的镜像五、推送打包的镜像到私有docker服务器1.编辑docker文件,使其允许http传输和对…...

1Panel自建RustDesk服务器方案实现Windows远程macOS
文章目录 缘起RustDesk 基本信息实现原理中继服务器的配置建议 中继服务器自建指南准备服务器安装1Panel安装和配置 RustDesk 中继服务防火墙配置和安全组配置查看key下载&安装&配置客户端设置永久密码测试连接 macOS安装客户端提示finder写入失败hbbs和hbbr说明**hbbs…...

STM32完全学习——使用定时器1精确延时
一、定时器的相关配置 首先一定要是递减定时器,递增的不太行,控制的不够准确,其次在大于10微秒的延时是非常准确的,小于的话,就没有那没准,但是凑合能用。误差都在一个微秒以内。使用高级定时器也就是时钟…...

深度学习——损失函数汇总
1. 连续值损失函数 总结:主要使用胡贝儿损失函数,应用于连续数值的预测之间的误差损失,参考地址 import torch import torch.nn as nna = torch.tensor([[1, 2], [3, 4]], dtype=torch.float) b = torch.tensor([[3, 5], [8, 6]], dtype=torch.float)loss_fn1 = torch.nn.M…...

1、单片机寄存器-io输入实验笔记
1、硬件 时钟总线如下: PB端口挂载在AHB1总线上,因此要对该位进行使能。 引脚 LED0和LED1挂载在PB0和PB1上:推挽输出、100M、 上拉默认高电平,低电平点亮。 2、软件 位带操作 #ifndef _IO_BIT_H_ #define _IO_BIT_H_#define …...

记忆旅游系统|Java|SSM|VUE| 前后端分离
【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…...

CentOS7下的 OpenSSH 服务器和客户端
目录 1. 在 IP 地址为 192.168.98.11 的 Linux 主机上安装 OpenSSH 服务器; 2. 激活 OpenSSH 服务,并设置开机启动; 3. 在 IP 地址为 192.168.98.22 的 Linux 主机上安装 OpenSSH 客户端,使用客户端命令(ssh、 scp、…...

RabbitMQ基础篇之Java客户端 Topic交换机
文章目录 Topic 交换机概述 Routing Key 与 Binding Key优缺点及场景优点缺点应用场景 案例演示创建队列和交换机:消费者代码:消息发送代码:测试: 总结 Topic 交换机概述 路由机制: Topic交换机与Direct交换机类似&am…...

微服务-Sentinel新手入门指南
微服务为什么要使用流控降级组件 为了提高系统运行期间的稳定性和可用性 在微服务环境下,服务之间存在复杂的调用关系,单个服务的故障或过载可能会迅速影响到整个系统,导致服务雪崩效应。流控组件可以限制进入系统的流量,防止系…...

传统听写与大模型听写比对
在快节奏的现代生活中,听写技能仍然是学习语言和提升认知能力的重要环节。然而,传统的听写练习往往枯燥乏味,且效率不高。现在,随着人工智能技术的发展,大模型听写工具的问世,为传统听写带来了革命性的变革…...

http性能测试命令ab
华子目录 使用方法常用选项示例输出解读注意事项 在 Linux系统中, ab( ApacheBench)是一个用于 测试HTTP服务器性能的 工具。它是 Apache HTTP服务器项目的 一部分,专门设计用来模拟 多个用户对 服务器发起 并发请求&am…...

前端:轮播图常见的几种实现方式
目录 前言 一、轮播图是什么? 二、实现方法 1.使用纯 HTML、CSS、JavaScript 实现 2.使用组件来快速实现 总结 前言 在学习前端的过程中,总是有要实现轮播图效果的时候,本文就介绍了轮播图常见的几种实现方式。 一、轮播图是什么?…...

Pytest基础01: 入门demo脚本
目录 1 Pytest接口测试 1.1 最简单版hello world 1.2 pytest.ini 2 pytest兼容unittest 3 封装pytest执行入口 1 Pytest接口测试 Pyest是一个可以用于接口测试的强大框架,开源社区也有非常多的pytest插件。 按江湖传统,学习一个新语言或者新框架&…...

ruoyi 多租户 开启后针对某一条sql不适用多租户; 若依多租户sql规则修改
文章参考:多租户功能 | Ruoyi-TDesign 忽略租户 1.如果需要指定单独 SQL 不开启过滤,可在对应的 Mapper 接口添加如下忽略注解: InterceptorIgnore(tenantLine "true", dataPermission "false") 此处注意事项 使…...

driftingblues6靶机
打开靶场 查看页面源代码,最下面有一个注释,提供了一个网址 vmlist.github.io,我们去访问一下 这里是一个github页面,提供攻防虚拟机的下载,对我们解题并没有什么有用的信息,我们再去扫描端口 发现只有80端…...

Neo4j GDS 2.0 安装与配置
Neo4j GDS 2.0 安装与配置 GDS插件安装:Neo4j官方文档 1. GDS简介 Neo4j Graph Data Science (GDS) 库作为 Neo4j Graph Database 的插件提供。该插件需要安装到数据库中并在 Neo4j 配置中列入白名单。有两种主要方法可以实现这一点,我们将在本章中详…...

A*算法与人工势场法结合的路径规划(附MATLAB源码)
A*算法与人工势场法(APF)结合实现路径规划 路径规划是机器人、无人机及自动驾驶等领域中的一个重要问题。本文结合了经典的 A* 算法与 人工势场法(Artificial Potential Field, APF),实现了一种改进的路径规划方法。下…...

BootstrapTable处理表格
需求背景 历史项目使用 BootstrapTable 作为前端组件 应客户需要调整: 冻结前四列对于大文本文字显示部分内容,鼠标悬浮显示完整内容 冻结列 1、引入相关CSS,JS CSS <link rel"stylesheet" href"/css/bootstrap.min.css"> …...

UniApp 打开文件工具,获取文件类型,判断文件类型
注意:以下代码使用 typeScript 开发,如果想在 js 中使用,可参考 npm 已经发布的包:https://www.npmjs.com/package/uni-easy-file NPM 使用 如果想直接在 npm 项目中使用可以直接执行以下命令 npm i uni-easy-file然后直接使用 …...

docker-开源nocodb,使用已有数据库
使用已有数据库 创建本地数据库 数据库:nocodb 用户:nocodb 密码:xxxxxx修改docker-compose.yml 默认网关的 IP 地址是 172.17.0.1(适用于 bridge 网络模式)version: "2.1" services:nocodb:environment:…...

Mysql COUNT() 函数详解
简介 COUNT()函数定义 COUNT()函数是SQL中常用的 聚合函数 ,用于统计满足特定条件的记录数。它可以灵活地应用于各种查询场景,帮助用户快速获取所需的数据统计信息。该函数不仅能够计算所有行的数量,还能针对特定列进行计数,并支…...