Abp aspnet-core项目部署到Centos7.2

2023-10-30

Abp aspnet-core项目部署到Centos7.2全流程攻略

前言

鉴于跨平台趋势潮流,小试一把微软东家的跨平台体验。 期间坑多多,依次记录,与君共勉。

流程简单记录

  • 在官方aspnetboilerplate生成项目架构
  • 还原项目并修改配置添加数据库支持
  • 本地生成并且打包成文件
  • linux系统选择的Centos7.2测试,其他版本请相应修改,环境以及服务的搭建
  • 打包文件部署到服务器并部署调试
  • 安装supervisor守护程序守护项目

具体步骤

1 前期准备

1. 在官方下载项目模板

版本选择ASPNET Core版本 至于前端展示取决于业务需求。反正我用的是前后端分离,所以这块是用不到的。

2. 下载的项目结构如图所示

具体工程的功能请自寻解释在此不再展开。 修改XXX.Migrator 和XXX.Web.Host下appsetings.json的链接字符串,此处由于我用的是mysql数据库。关于如何修改配置 请参考博客园此篇文章。

https://www.cnblogs.com/stulzq/p/7242581.html

3. 文件打包

选择打包到文件夹位置指定。最终在/bin/debug/netcoreapp2.0/publish下会生成打包好的文件。本地调试

dotnet xxx.Web.Host.dll

可以看到是成功的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b9ublXSV-1588131590987)(https://img2020.cnblogs.com/blog/740100/202004/740100-20200429113207613-719495257.png)]
至此打包准备工序完成。

4. linux环境准备

安装.Net Core SDK 2.0
首先安装依赖包

yum install libunwind libicu

获取dotnet-sdk最新版本

https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.0-download.md

wget https://download.microsoft.com/download/1/B/4/1B4DE605-8378-47A5-B01B-2C79D6C55519/dotnet-sdk-2.0.0-linux-x64.tar.gz

解压到制定目录

mkdir -p /usr/local/dotnet
tar zxf dotnet-sdk-2.0.0-linux-x64.tar.gz -C /usr/local/dotnet

添加链接文件。

ln -s /usr/local/dotnet/dotnet /usr/local/bin

考虑到部署服务的情况 此处可以先将nginx安装好.
下载对应当前系统版本的nginx包(package),
具体版本根据自己情况 nginx在此选择

wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

建立nginx的yum仓库

rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

下载并安装nginx

yum install nginx

启动nginx服务

systemctl start nginx
service nginx start

可以通过命令whereis 或find查找nginx的配置文件
并加以修改

user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
#如果是多站点配置,需要启用这个配置,然后在conf.d文件夹下,创建多个配置文件即可。比如www.a.com.conf、www.b.com.conf
    #include /etc/nginx/conf.d/*.conf;
server {
    listen 80;
    #root /usr/share/nginx/html;
    #index index.html index.htm;
    # Make site accessible from http://localhost/
    server_name hwapp.netcore.cn;
    location / {
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
 proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
} 

5. 将打包好的文件拷贝到服务器指定目录

可以使用WinScp.exe 和putty.exe 操作centos

6. 安装supersivor守护程序

yum install supersivor

配置supervisor

在etc下创建目录,并赋权限

mkdir -m 700 -p /etc/supervisor

在目录“ /etc/supervisor”下创建配置文件

echo_supervisord_conf > /etc/supervisor/supervisord.conf

修改配置文件

vim /etc/supervisor/supervisord.conf

在文件末尾添加,注意首尾需无空格,需顶格

[include]
files=/etc/supervisor/conf.d/*.conf

复制代码在目录“/etc/supervisor”下创建dotnet core 进程配置文件存放目录“conf.d”

mkdir -m 700 /etc/supervisor/conf.d

创建进程配置文件

vim /etc/supervisor/conf.d/MyDotNetName.conf

"MyDotNetName"可以为dotnet core 入口dll文件名字 ,插入内容,注意首尾需无空格,需顶格:

[program:MyDotNetName]
command=/bin/bash -c "dotnet MyDotNetName.dll"
directory=/usr/PublishOutput/
stderr_logfile=/var/log/MyDotNetName.error.log
stdout_logfile=/var/log/MyDotNetName.stdout.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=3
[program:MyDotNetName] ;显示名称
command=/bin/bash -c "dotnet MyDotNetName.dll"  ;运行命令,启动dotnet进程
directory=/usr/PublishOutput/   ;MyDotNetName目录
stderr_logfile=/var/log/MyDotNetName.error.log  ;错误日志文件
stdout_logfile=/var/log/MyDotNetName.stdout.log  ;日志文件
environment=ASPNETCORE_ENVIRONMENT=Production  ;进程环境变量
user=root   ;进程执行用户
autostart=true;自动启动 
autorestart=true ;是否自动重启
startsecs=3 ;自动重启间隔时间

创建supervisor 自启动服务

vim /etc/systemd/system/supervisor.service

贴入配置

[Unit]
Description=supervisor

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

使配置生效

systemctl daemon-reload

设置服务开机启动,即设置enable

systemctl enable supervisor.service

启动服务

systemctl start supervisor.service

验证dotnet进程是否启动
使用命令“ps -ef | grep dotnet”查看dotnet 是否运行

[root@machine ~]# ps -ef | grep dotnet
root      2281  2280  0 15:27 ?        00:00:00 dotnet MyDotNetName.dll
root      2302  2217  0 15:30 pts/0    00:00:00 grep --color=auto dotnet

最终可以通过http://ip 访问到部署的服务

作者:zhaohejing
链接:https://juejin.im/post/5a4f20edf265da3e2d333cf9
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Abp aspnet-core项目部署到Centos7.2 的相关文章

  • .NET 6 VS2022连接WebService 生成代理客户端代码

    NET 6 VS2022连接WebService 生成代理客户端代码 VS2022安装 WCF Windows Communication Foundation 首先我们得安装WCF连接工具 搜索WCF并安装 安装完毕后启动VS2022 W
  • aspnet zero Refused to apply style from '...'because its MIME type ('') is not a supported styleshee

    这是asp net zero前端css javascript无法加载造成的错误 解决方法 1 安装npm 2 安装yarn cnpm install g yarn 3 在 Web Mvc目录下 打开cmd 执行 yarn 执行完成后再运行
  • abp Application层获取请求的Header内容

    abp 如何在应用层返回header自定义的内容 参考 https blog csdn net u012659600 article details 99579369 首先在AppService中注入HttpContextAccessor
  • 使用Canvas扩展绘制动态ASP.NET Core Blazor气泡图

    目录 介绍 背景 使用代码 步骤1 创建ASP NET Core Blazor服务器应用程序 运行测试应用程序 步骤2 安装软件包 步骤3 创建模型类 创建服务类 步骤4 将服务添加到Startup cs中 步骤5 使用客户端项目 添加Ra
  • abp流程引擎

    参考大神的博客 https www cnblogs com spritekuang asp net core Identity Server权限替代方案 https www keycloak org documentation
  • abp OFFSET 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。

    在学习abp框架时 出现上述错误 这是因为使用了sql server2008 数据库造成端 数据库版本低 可以更改代码 在项目中ctrl f搜索 UseSqlServer 找到如下代码 添加 b gt b UseRowNumberForPa
  • Abp aspnet-core项目部署到Centos7.2

    Abp aspnet core项目部署到Centos7 2全流程攻略 前言 鉴于跨平台趋势潮流 小试一把微软东家的跨平台体验 期间坑多多 依次记录 与君共勉 流程简单记录 在官方aspnetboilerplate生成项目架构 还原项目并修改
  • 使用cmd命令行启动asp.net core 以及.net 5项目

    asp net core 通过CMD命令启动
  • 学习abp-1-ContosoUniversity Abp版

    1 去abp官网下载模板工程 https aspnetboilerplate com 项目名称为ContosoAbp 这里使用的是net core 3 x 2 x版本在编辑用户时 会报错 打开下载的解决方案 等待nuget还原包 2 数据库
  • WTM asp.net core应用程序在Ubuntu上和CentOS上部署

    wtm在Ubuntu上和CentOS上部署 项目发布 在Visual Studio中右击Web项目 选择发布 如下图 Ubuntu安装 net core运行时 Ubuntu我是用的Vmware虚拟机 版本是18 04 参考官方文档 如果要开
  • 各种数据库连接字符串(EFCore)

    qlite Data Source Furion db MySql Data Source localhost Database Furion User ID root Password 000000 pooling true port 3
  • Yarn 和 NPM 国内快速镜像(淘宝镜像)

    Yarn 和 NPM 国内快速镜像 淘宝镜像 如果在前端开发使用 NPM 或者 YARN 下载过程中碰到网速非常慢 可以配置国内 淘宝镜像 来提升下载速度 具体方法如下 NPM 查询当前镜像 npm get registry 设置为淘宝镜像
  • abp web.mvc项目中的菜单加载机制

    abp中的菜单加载机制 在abp中菜单的定义与我们传统写的框架不一样 它是在编写代码的时候配置 而我们一般写的通用权限管理系统中 是后期在后台界面中添加的 这一点有很大不同 abp关于菜单的定义及管理挺复杂的 与菜单相关的结构类 接口及扩展
  • ABP模块系统学习及使用

    ABP模块系统简介 参考 ABP中配置的注册和初始化 ABP模块系统 ABP 源码解析 一 ABP启动 ABP框架提供了创建和组装模块的基础 一个模块能够依赖于另一个模块 在通常情况下 一个程序集就可以看成是一个模块 在ABP框架中 一个模
  • 在C#中使用 CancellationToken 处理异步任务

    在 NET Core 中使用异步编程已经很普遍了 你在项目中随处可见 async 和 await 它简化了异步操作 允许开发人员 使用同步的方式编写异步代码 你会发现在大部分的异步方法中 都提供了CancellationToken参数 本文
  • entity framework core + SQLite Error 1: 'no such table: Blogs'.

    在学习Entity Framework Core使用SQLite时 出现上述错误 原因是找不到db文件 在UseSqlite 中添加具体的db文件路径 改成如下即可 protected override void OnConfiguring
  • 多平台Avalonia UI框架的主题化和本地化功能

    目录 介绍 本地化 国际化和主题化 运行高级演示 什么是Avalonia 在多个平台上运行示例 主题 本地化代码位置 Nuget包位置 主题 本地化代码示例 示例代码位置 简单的主题示例 带有样式更改的简单主题 更改主题和语言示例 高级演示
  • ASP.NET Core3.1 跨平台智能云管理系统源码

    ASP NET Core3 1 跨平台智能云管理系统源码 一个相当不错的系统框架 ASP NET Core3 1 跨平台智能云管理系统 什么是 ASP NET Core ASP NET Core 是一个由微软创建的 用于构建 web 应用
  • asp.net zero 8.2 学习-4-创建接口及服务

    上一节 在框架添加了实体 这一节 写接口及服务类 实现实体的增删改查 创建接口 SIS Application Shared层 创建DTO SIS Application Shared层 对应的Dto文件夹 创建Dto映射Mapper SI
  • ABP.IO - Blazor WebAssembly - 租户特定登录

    我在我的项目中使用 ABP IO Blazor 模板 尝试构建一个简单的多租户门户 我遇到的问题是试图避免最终用户在登录屏幕上选择特定租户 使用此页面作为我的参考 https docs abp io en abp latest 多租户 ht

随机推荐

  • Linux下的用户和文件权限管理

    一 管理用户账号和组帐号 1 用户帐号和组帐号概述 1 1用户帐号 用户账号 特点 超级用户 root用户 负责系统管理和维护 普通用户 由root创建 有限的权限 一般只在自己的宿主目录中拥有完整权限 程序用户 Linux系统自带 不许登
  • goland报错:go: go.mod file not found in current directory or any parent directory; see ‘go help module

    IDE编辑器 goland 2020 1 下载链接 现象 原因 运行文件路径配置错误 解决 edit configurations 编辑配置 修改路径 将路径具体到要运行的文件 点击ok保存 再次点击 run 执行成功
  • k8s安全07--使用AppArmor限制容器访问资源

    k8s安全07 使用AppArmor限制容器访问资源 1 介绍 2 操作案例 2 1 apparmor 基础命令 2 2 通过AppArmor 限制pod访问的资源 3 注意事项 4 说明 1 介绍 AppArmor is a kernel
  • linux下logstash插件离线包的方式安装

    1 背景 我们项目研发了一块日志分析系统 之后需要去内网环境下实施 别的都好说 只是内网环境无法联网 众所周知的是logstash的插件安装在linux上需要一堆的依赖 这也是我觉得linux最麻烦的地方 所以我们想了个办法 即将在我们测试
  • 蚁群算法解决tsp问题python_蚁群算法求解TSP问题

    一 蚁群算法简介 蚁群算法是对自然界蚂蚁的寻径方式进行模似而得出的一种仿生算法 蚂蚁在运动过程中 能够在它所经过的路径上留下信息素 pheromone 的物质进行信息传递 而且蚂蚁在运动过程中能够感知这种物质 并以此指导自己的运动方向 由大
  • 解决mysqlclient 1.4.0 or newer is required; you have 0.10.1问题

    执行python manage py makemigrations生成数据库迁移文件时 报错 raise ImproperlyConfigured mysqlclient 1 4 0 or newer is required you hav
  • java中的

    java逻辑运算符 位或运算符 位与运算符 位异或运算 位非运算符 位或运算符 运算符和 这一类的运算符一样 拆解开就是 a a b 运算规则 两个数都转为二进制 然后从高位开始比较 两个数只要有一个为1则为1 否则就为0 比如 129 1
  • C++ int转换为string

    我们可以使用 C 标准库或C 库函数 类将 int 转换为字符串 现代 C 风格的方式 我们可以使用C 标准库中的std to string 这个是自11年以来添加到C 标准库中的 如果项目使用C 11 和之后的标准 建议使用这个方法 st
  • 解读RSAC 2022

    山石网科为你解读RSAC 2022 第一期 云平台的新思想 方法 第二期 深度学习的应用 深度学习的刻板印象 近年来 硬件计算能力的强大和数据量的与日俱增 推动了深度学习 Deep Learning 的发展 使深度学习的实用性和普及性都有了
  • 医疗知识中台白皮书 PDF

    链接 https pan baidu com s 1IFi NE3oWTE82 q DVUuug 提取码 3jf7
  • RuoYi若依框架的使用(新增侧边栏菜单并可以打开)

    2022 12 06今天我学习了如何使用若依框架做一个侧边栏的菜单 并且可以打开对应的页面 一 菜单管理页面 首先在菜单管理页面新增主目录 如 自己设置一个路由地址 二 新增子菜单 然后在创建好的主菜单中再新增子菜单 如 组件路径和权限字符
  • 完美解决“error rpc failed curl 18 transfer closed with outstanding read data remaining”问题【每天一个小技巧】

    本文结构 0 引言 1 解决方案 0 引言 在使用Git clone或者coinbrew fetch获得网络代码仓库的时候 经常出现类似如下错误 Cloning into remote Counting objects 20248 done
  • 大数据之数据仓库实战

    概念 什么是数据库 数据库 Database 是按照数据结构来组织 存储和管理数据的建立在计算机存储设备上的仓库 数据库是长期储存在计算机内 有组织的 可共享的数据集合 数据库中的数据指的是以一定的数据模型组织 描述和储存在一起 具有尽可能
  • 常用的C盘手动清理方法(小白教程)

    1 清理系统更新安装包 2 清理电脑用户缓存文件 同时按住 Win 键和 R 键 调出运行命令窗口 输入英文状态下的 temp 打开后选中所有删除即可 都是缓存文件 不影响正常使用 3 清理电脑用户的 Argt文件夹 具体叫什么名字找不到了
  • ARIMA模型进行销售数据预测

    ARIMA模型的预测分为以下几部分 1 导入相关库 import pandas as pd import numpy as np import matplotlib pyplot as plt import statsmodels api
  • php curl读取头,【随手记】PHP中使用curl_setopt获取响应头

    随手记 PHP中使用curl setopt获取响应头 随手记 PHP中使用curl setopt获取响应头 在项目中需要对接总部的接口文档 其中需要使用PHP发送原生RAW请求 客户将获取验证TOCKEN值放在了响应头中 如果要获取该值 提
  • AndroidStudio报Error:Execution failed for task ':app:buildInfoDebugLoader'.

    当AndroidStudio在编译的时候报错 Error Execution failed for task app buildInfoDebugLoader gt Exception while doing past iteration
  • 【C】借助DirectSound进行流的形式无缝播放的例子

    DirectSound是DirectX的一个组件 用于播放声音 BGM等 和DirectMusic不一样 DirectSound用于播放波形声音 WAV无损等 而不是midi音乐 通常大家使用DirectSound是直接把一个声波数据全部载
  • 用户登录+页面跳转+后台首页实现

    1 完成用户登录操作 1 1 用户登录流程 用户登录完成之后 需要将密钥进行保存 Session Cookie 将页面跳转到系统首页 1 2 Session和Cookie介绍 1 2 1 Session 会话机制 服务器保存用户信息的一种手
  • Abp aspnet-core项目部署到Centos7.2

    Abp aspnet core项目部署到Centos7 2全流程攻略 前言 鉴于跨平台趋势潮流 小试一把微软东家的跨平台体验 期间坑多多 依次记录 与君共勉 流程简单记录 在官方aspnetboilerplate生成项目架构 还原项目并修改