百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

在Centos 8 上 部署 .Net Core 应用程序

mhr18 2024-12-02 17:38 14 浏览 0 评论

1、更新dnf 源

1 dnf update

2、安装 Asp.Net Core 运行时

1 dnf install aspnetcore-runtime-3.1

2.1、验证是否安装成功

1 dotnet --info

出现如上图所示就说明安装成功

3、安装Nginx

dnf -y install nginx

3.1、查看nginx版本

nginx -v

3.2、设置开机自启动

1 systemctl enable nginx

3.3、启动 nginx 服务

service nginx start

3.4、其他 相关 指令

# 卸载
dnf remove nginx
# 停止 服务
service nginx stop
# 重启
service nginx restart
# 加载配置文件
service nginx reload

4、MySql 安装

4.1、下载

 wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm

4.2、使用rpm 安装 mysql

 rpm -ivh mysql80-community-release-el8-1.noarch.rpm

4.3、dnf 安装 mysql 服务

dnf -y install mysql-server

4.4、设置开机自启动

systemctl enable mysqld.service

4.5、启动mysql

systemctl start mysqld.service

4.6、设置远程连接(可选)

因我是在某云上,所以需要设置我本地连接,如果是在自己虚拟器可跳过此步骤

4.6.1、进入 mysql 命令行

4.6.2、更新 系统表(user)

update mysql.user set host="%" where user="root";


4.6.3、设置 root 密码

-- 切换数据库
use mysql;
-- 执行语句
ALTER  USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';
-- 刷新修改后的权限
flush privileges;
-- 退出
exit;


4.6.4、测试


5、将应用程序发布后的包上传

5.1、创建文件夹(用于存放应用程序包)

mkdir -p /var/www/web

5.2、ftp 上传应用程序文件到 上一步创建的文件夹(/var/www/web/)中

6、Redis 安装(可选)

如果项目中没有用到 Redis 可以跳过此步骤

6.1、下载、解压、编译

 wget http://download.redis.io/releases/redis-6.0.6.tar.gz
 tar xzf redis-6.0.6.tar.gz
 cd redis-6.0.6
 dnf install tcl
 make

6.2、编译测试

make test

6.3、迁移到指定的目录(可选)

mkdir -p /usr/local/soft/redis
cd /usr/local/soft/redis/
mkdir bin
mkdir conf
cd bin/
cp /redis-6.0.6/src/redis-cli ./
cp /redis-6.0.6/src/redis-server ./
cd ../conf/
cp /redis-6.0.6/redis.conf ./
# 配置 redis-server 的 配置文件为 /usr/local/soft/conf/redis.conf
/usr/local/soft/redis/bin/redis-server /usr/local/soft/redis/conf/redis.conf
# 检查端口是否在使用
netstat -anp | grep 6379


6.4、使用 systemd 方式守护 redis 进程

6.4.1、编辑 redis.service 文件

vim /lib/systemd/system/redis.service

6.4.2、设置redis.service 内容

[Unit]Description=RedisAfter=network.target
[Service]Type=forkingPIDFile=/var/run/redis_6379.pidExecStart=/usr/local/soft/redis/bin/redis-server /usr/local/soft/redis/conf/redis.confExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true
[Install]WantedBy=multi-user.target

6.4.3、重载系统

systemctl daemon-reload

6.4.4、设置开机启动及其他指令

# 开机自启
systemctl enable redis
# 启动
systemctl start redis
# 查看状态
systemctl status redis
# 停止
systemctl stop redis

7、配置.Net Core 应用程序的守护进程

7.1、编辑 aspnetCore.service 文件

文件名 自定义,这里我起名为 aspnetCore.service

vim /lib/systemd/system/aspnetCore.service

7.2、编辑内容

[Unit]
Description=AspnetCoreDemo running on Centos8 

[Service]# 应用程序所在的文件目录
WorkingDirectory=/var/www/web/
ExecStart=/usr/bin/dotnet /var/www/web/Carefree.AspNetCoreDemo.dll
Restart=always
# 如果dotnet服务崩溃,10秒后重新启动服务
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=AspNetCoreDemo
User=root
#Production:生产环境 Development:开发环境
Environment=ASPNETCORE_ENVIRONMENT=Development 
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

7.3、重载系统及设置开机启动

# 重载系统
systemctl daemon-reload
# 开机自启动
systemctl enable aspnetCore.service 

8、Nginx 代理

8.1、编辑配置文件

vim /etc/nginx/conf.d/web.conf

8.2、编辑内容

server
{
   listen       80;
   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-Forwarded-For
                   proxy_add_x_forwarded_for;
           proxy_set_header   X-Forwarded-Proto $scheme;
   }
}

8.3、编辑 nginx.conf 文件


8.4、验证配置文件是否正确及加载配置文件

# 验证配置文件
nginx -t
# 加载配置文件
nginx -s reload

至此我们的应用程序可正常访问了。如有何问题可与我联系,共同学习。

相关推荐

如何检查 Linux 服务器是物理服务器还是虚拟服务器?

在企业级运维、故障排查和性能调优过程中,准确了解服务器的运行环境至关重要。无论是物理机还是虚拟机,都存在各自的优势与限制。在很多场景下,尤其是当你继承一台服务器而不清楚底层硬件细节时,如何快速辨识它是...

第四节 Windows 系统 Docker 安装全指南

一、Docker在Windows上的运行原理(一)架构限制说明Docker本质上依赖Linux内核特性(如Namespaces、Cgroups等),因此在Windows系统上无法直...

C++ std:shared_ptr自定义allocator引入内存池

当C++项目里做了大量的动态内存分配与释放,可能会导致内存碎片,使系统性能降低。当动态内存分配的开销变得不容忽视时,一种解决办法是一次从操作系统分配一块大的静态内存作为内存池进行手动管理,堆对象内存分...

Activiti 8.0.0 发布,业务流程管理与工作流系统

Activiti8.0.0现已发布。Activiti是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。其核心是超快速、稳定的BPMN2流程引擎。Activiti可以...

MyBatis动态SQL的5种高级玩法,90%的人只用过3种

MyBatis动态SQL在日常开发中频繁使用,但大多数开发者仅掌握基础标签。本文将介绍五种高阶技巧,助你解锁更灵活的SQL控制能力。一、智能修剪(Trim标签)应用场景:动态处理字段更新,替代<...

Springboot数据访问(整合Mybatis Plus)

Springboot整合MybatisPlus1、创建数据表2、引入maven依赖mybatis-plus-boot-starter主要引入这个依赖,其他相关的依赖在这里就不写了。3、项目结构目录h...

盘点金州勇士在奥克兰13年的13大球星 满满的全是...

见证了两个月前勇士与猛龙那个史诗般的系列赛后,甲骨文球馆正式成为了历史。那个大大的红色标志被一个字母一个字母地移除,在周四,一切都成为了过去式。然而这座,别名为“Roaracle”(译注:Roar怒吼...

Mybatis入门看这一篇就够了(mybatis快速入门)

什么是MyBatisMyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为M...

Springboot数据访问(整合druid数据源)

Springboot整合druid数据源基本概念SpringBoot默认的数据源是:2.0之前:org.apache.tomcat.jdbc.pool.DataSource2.0及之后:com.z...

Linux 中的 &quot;/etc/profile.d&quot; 目录有什么作用 ?

什么是/etc/profile.d/目录?/etc/profile.d/目录是Linux系统不可或缺的一部分保留配置脚本。它与/etc/profile文件相关联,这是一个启动脚本,该脚...

企业数据库安全管理规范(企业数据库安全管理规范最新版)

1.目的为规范数据库系统安全使用活动,降低因使用不当而带来的安全风险,保障数据库系统及相关应用系统的安全,特制定本数据库安全管理规范。2.适用范围本规范中所定义的数据管理内容,特指存放在信息系统数据库...

Oracle 伪列!这些隐藏用法你都知道吗?

在Oracle数据库中,有几位特殊的“成员”——伪列,它们虽然不是表中真实存在的物理列,但却能在数据查询、处理过程中发挥出意想不到的强大作用。今天给大家分享Oracle伪列的使用技巧,无论...

Oracle 高效处理数据的隐藏神器:临时表妙用

各位数据库搬砖人,在Oracle的代码世界里闯荡,处理复杂业务时,是不是总被数据“搅得头大”?今天给大家安利一个超实用的隐藏神器——临时表!当你需要临时存储中间计算结果,又不想污染正式数据表...

Oracle 数据库查询:多表查询(oracle多表关联查询)

一、多表查询基础1.JOIN操作-INNERJOIN:返回两个表中满足连接条件的匹配行,不保留未匹配数据。SELECTa.emp_id,b.dept_nameFROMempl...

一文掌握怎么利用Shell+Python实现多数据源的异地备份程序

简介:在信息化时代,数据安全和业务连续性已成为企业和个人用户关注的焦点。无论是网站数据、数据库、日志文件,还是用户上传的文档、图片等,数据一旦丢失,损失难以估量。尤其是当数据分布在多个不同的目录、服务...

取消回复欢迎 发表评论: