Centos7 部署 ASP.NET Core应用程序

 

前言

一、安装依赖环境

第一步、将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库

第二步、安装.NET CORE SDK

第三步、检查安装是否成功

二、部署ASP.NET Core应用程序

1.上传到发布好的代码

2.运行测试发布的项目

2.1. dotnet命令加参数

2.2.设置防火墙

3.使用Nginx进行反向代理

安装ngixn

设置Nginx开机启动

修改Nginx配置文件

总结

参考文章


 


前言

我一直都是在windows平台上面做开发,今天也来分享下自己在Centos7上面部署ASP.NET Core应用程序。也是对自己知识的记录和回顾。


 

一、安装依赖环境

我们的ASP.NET Core应用程序是需要跑在.NET Core环境上面的。所以我们就需要先安装.NET Core环境。根据微软官方的文档说明:如果要开发 .NET 应用,请安装 SDK(包括运行时)。 或者,如果只需运行应用程序,请安装运行时。 如果要安装该运行时,建议安装 ASP.NET Core 运行时,因为它同时包括 .NET Core 和 ASP.NET Core 运行时。

可是在我测试了多次发下,按照官方的说法我只安装了ASP.NET Core运行时后,发现运行程序总是在报错。它给我的提示就是.NET SDK没有安装。所以还是安装了.NET CORE SDK。

第一步、将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库

命令如下:

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

第二步、安装.NET CORE SDK

命令如下:

sudo yum install dotnet-sdk-3.1

第三步、检查安装是否成功

命令如下:

dotnet --list-sdk
dotnet --list-runtimes

二、部署ASP.NET Core应用程序

1.上传到发布好的代码

使用ftp工具将自己的项目上传到Centos7服务器中

2.运行测试发布的项目

命令如下:

dotnet /home/ypf/Desktop/Test/Test.dll

当看到下图显示内容,说明你的项目已经可以正常运行了。我们就可以在服务器内使用浏览器测试浏览项目啦!

目前我们还不能在外网访问,我们的dotnet 默认只监听本地5000的端口,并且Centos7默认是开启防火墙,所以做如下2个操作。

2.1. dotnet命令加参数

dotnet /home/ypf/Desktop/Test/Test.dll --urls http://*5000

2.2.设置防火墙

//以下操作二选一
systemctl status firewalld // 查看防火墙状态
systemctl stop firewalld //关闭防火墙

firewall-cmd --zone=public --add-port=5000/tcp --permanent  // permanent参数是永远存在,不然的话,重启后就没有了
firewall-cmd --reload // 重启防火墙 ,添加端口后记得执行此命令

3.使用Nginx进行反向代理

Nginx是一个高性能的Web服务器软件。这是一个比Apache HTTP Server更加灵活和轻量级的程序。我们的网站程序启动的端口是5000,可以借助Nginx把程序5000端口映射到80端口。

安装ngixn

3.1 添加Nginx存储库

要添加CentOS 7 EPEL仓库

sudo yum install epel-release

3.2 安装Nginx

现在Nginx存储库已经安装在您的服务器上,请使用以下yum命令安装Nginx:

sudo yum install nginx

3.3 启动Nginx

Nginx不会自行启动。要运行Nginx,请输入:

sudo systemctl start nginx

如果您正在运行防火墙,请运行以下命令以允许HTTP和HTTPS通信:

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

此时,可以在本机的浏览器中访问服务器的IP地址。

如果拒绝访问,考虑服务器80端口是否开放。可尝试通过下面两条命令开放80端口、重启防火墙使修改即时生效。

firewall-cmd --zone=public --add-port=80/tcp --permanent
systemctl restart firewalld

设置Nginx开机启动

避免开机需要手动开启Nginx,可以通过如下快捷命令把Nginx配置成系统服务,并设置为开机启动:

systemctl enable nginx  #设置开机启动

其他命令:

systemctl disable nginx   #禁止开机启动
systemctl status nginx     #查看运行状态
systemctl restart nginx    #重启服务

修改Nginx配置文件

首先,拿到Nginx的默认配置文件/etc/nginx/nginx.conf,把默认80端口转发配置server节点用#符注释掉。

 

然后,我们新建一个配置文件netcore.conf,内容如下:

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;
    }
}

保存并上传到Nginx的配置加载目录/etc/nginx/conf.d,最后执行命令nginx -s reload重启Nginx即可。

 


总结

以上就是ASP.NET Core运行在Centos7上的所有步骤。


参考文章

在 CentOS 上安装 .NET Core SDK 或 .NET Core 运行时(微软官方)

CentOS 7部署ASP.NET Core应用程序

又一篇Centos7下的asp.net core部署教程在Centos7上自启动AspNet Core程序

在Centos7上自启动AspNet Core程序

Centos7发布说明 环境说明: 服务器系统:CentOS 7.2.1511 相关工具:Xshel、Xftp 服务器软件软件:.netcore、nginx、supervisor 准备好发布的程序 安装.NET Core SDK for CentOS7 打开网址:https://www.microsoft.com/net/core#linuxcentos 复制如下命令,单步执行: sudo yum install libunwind libicu curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=835019 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet sudo ln -s /opt/dotnet/dotnet /usr/local/bin 输入 dotnet –info 来查看是否安装成功 配置Nginx 下载安装Nginx,单步执行如下命令: curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm rpm -ivh nginx.rpm yum install nginx systemctl start nginx 来启动nginx systemctl enable nginx 来设置nginx的开机启动(linux宕机、重启会自动运行nginx不需要连上去输入命令)。 配置防火墙 命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(开放80端口) 命令:systemctl restart firewalld(重启防火墙以使配置即时生效) 测试nginx是否可以访问。 配置nginx对ASP.NET Core应用的转发 修改 /etc/nginx/conf.d/default.conf 文件,将文件内容替换为: 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; } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值