在Centos7上完整的部署.net Core项目

10 篇文章 0 订阅

1、在Centos7上完整的部署.net Core项目

2、.net core项目添加进程守护supervisor

Centos7安装 .net core

先添加微软包存储库(Centos 8不需要,8默认提供)

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

安装SDK或者运行时,需要做开发就安装SDK,只是为了项目能在服务器上运行,只安装运行时就行,SDK包含运行时,我直接安装了SDK

安装SDK,此处安装是3.1的

sudo yum install dotnet-sdk-3.1

安装运行时(如果安装了SDK,这一步就不需要了)

sudo yum install aspnetcore-runtime-3.1

这里边可能会遇到下面的问题:

比如,找不到包,更新包存储库后依然没法安装

下面三条指令可以更新包的存储库

yum清理

yum clean all

yum添加缓存

yum makecache

yum更新

yum -y update

如果安装还报错,查看可选择的源

yum search dotnet

然后选择对应的源进行安装

 

yum install dotnet-sdk-3.1.x86_64

查看是否安装成功,提示版本号则安装成功

dotnet --version

安装 git

此处我把服务器当作git的一个客户端来用的,因为有现成的git管理库,这里偷个懒,只安装git客户端。cnetos7 安装git客户端比较简单

sudo yum install -y git

通常网站项目建在/var/www 目录下面,再新建一个自定义的项目目录。

初始化仓库

git init

添加用户名、邮箱

git config --global user.name "name" git config --global user.email "email@example.com"

添加远程连接

git remote add origin http://192.168.0.38/admin/*****.git

拉取最新的代码

git pull origin dev

centos7解决git每次都要输入账号密码的问题,参照下面这个博客里边的内容,亲测有效

https://blog.csdn.net/cxhblog/article/details/106856161

 

.net core项目发布linux环境下的文件

此处用默认的项目做实验,目标框架3.1,服务器环境已配置好,这里使用框架依赖模式就行,注意目标运行时要选择“linux-x64”。

 

文件系统发布的内容如下,CoreWebTest是项目名称

 

将项目文件通过Windows上的git推送到代码服务器,然后再从刚才配置的Centos服务器上获取最新的文件,项目就更新到服务器上了

Core项目的启动

#进入项目目录

cd /var/www/你的项目文件名

#启动站点(注意下面这条指令可以让网站启动后在后台运行)

nohup dotnet CoreWebTest.dll --urls="http://*:5000" &

CoreWebTest.dll是我的项目名称,5000是项目的端口号(可以自定义) ,上面的指令是让站点后台启动。

#查看站点是否运行

ps -aux | grep "CoreWebTest.dll"

 

#测试站点访问,如果得到是首页的代码,则表示项目启动正常

curl http://localhost:5000/

nginx安装配置

 

项目安装好了,但是目前外网应该还访问不到,没有配置IP、域名,这块借助nginx,此处配置的是80端口,端口配置后注意检查firewall或者iptables里边,端口是否允许访问。

安装nginx

sudo yum install -y nginx

启动

sudo systemctl start nginx

开机自启动

sudo systemctl enable nginx

修改配置文件,这里配置了两个域名,后面测试域名访问的时候记得修改本地hosts文件

server {
    listen 80;
    server_name www.core.com www.core1.com;   #如果配置多个域名用空格隔开
    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;
    } 
 }

验证配置文件是否正确,出现下面提示表示配置文件正确

sudo nginx -t

重启nginx,使配置生效

sudo nginx -s reload

访问IP或者配置的域名(记得修改host文件),即可在外部访问。如果出现502,是SELinux配置的问题,需要将Nginx加到SELinux的允许名单,后面的“corenginx”是自己起的名字。

sudo yum install policycoreutils-python
sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M corenginx 
sudo semodule -i corenginx.pp

到这里,配置的Core项目已经可以正常访问了,但为了保证项目能正常运行不中断,还得配置进程守护,由于篇幅有限,进程守护放到下一篇文章。

进程守护

 

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值