如何在CentOS上部署.NET Core应用?

在CentOS上部署.NET Core应用的基础流程

.NET Core作为跨平台的开发框架,在CentOS系统上的部署已成为许多企业的选择,CentOS作为稳定的Linux发行版,为.NET Core应用提供了可靠运行环境,本文将介绍在CentOS上部署.NET Core应用的关键步骤和注意事项,帮助开发者顺利完成从开发到生产环境的迁移。

如何在CentOS上部署.NET Core应用?

环境准备与.NET Core SDK安装

在开始部署前,需确保CentOS系统满足.NET Core的运行要求,首先更新系统包管理器,使用sudo yum update -y命令安装最新安全补丁,安装.NET Core SDK,建议通过Microsoft官方仓库获取最新版本,执行以下命令添加微软签名密钥和仓库:

sudo rpm -Uvh http://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm  
sudo yum install dotnet-sdk-3.1 -y  

安装完成后,通过dotnet --version验证是否成功,若需长期支持版本,可选择.NET Core 3.1或.NET 5/6 LTS分支。

应用发布与配置

开发完成的.NET Core应用需先发布为独立或框架依赖的部署包,在项目目录下运行dotnet publish -c Release -o ./publish命令,生成可执行文件,对于生产环境,推荐使用独立部署(-r linux-x64),避免依赖系统.NET Core运行时。

将发布文件通过SCP或FTP上传至CentOS服务器的指定目录(如/var/www/myapp),创建专用运行用户(如dotnetuser)并设置文件权限:

sudo useradd -r -s /bin/false dotnetuser  
sudo chown -R dotnetuser:dotnetuser /var/www/myapp  

使用Nginx反向代理配置

为提高应用性能和安全性,建议通过Nginx作为反向代理,首先安装Nginx:

如何在CentOS上部署.NET Core应用?

sudo yum install nginx -y  
sudo systemctl start nginx  

编辑Nginx配置文件(/etc/nginx/nginx.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服务(sudo systemctl restart nginx),确保防火墙允许HTTP流量(sudo firewall-cmd --permanent --add-service=http)。

进程管理与监控

生产环境中需确保应用持续运行,推荐使用systemd创建服务单元文件,例如/etc/systemd/system/myapp.service

[Unit]  
Description=My .NET Core App  
[Service]  
User=dotnetuser  
WorkingDirectory=/var/www/myapp  
ExecStart=/var/www/myapp/myapp  
Restart=always  
[Install]  
WantedBy=multi-user.target  

启用并启动服务:sudo systemctl enable myapp && sudo systemctl start myapp,通过journalctl -u myapp查看日志,监控应用状态。

常见问题与优化

部署时可能遇到端口冲突或依赖问题,若应用无法启动,检查netstat -tlnp确认端口占用情况,性能优化方面,可启用Gzip压缩(在Nginx配置中添加gzip on;)或调整进程工作线程数。

如何在CentOS上部署.NET Core应用?


FAQs

Q1: 如何在CentOS上卸载.NET Core SDK?
A1: 执行sudo yum remove dotnet-sdk-3.1命令卸载指定版本,若需完全清理,可删除Microsoft仓库配置文件(/etc/yum.repos.d/microsoft-prod.repo)并清理缓存(sudo yum clean all)。

Q2: .NET Core应用在CentOS上出现内存溢出如何处理?
A2: 首先使用dotnet-counters监控内存使用情况,确认是否因内存泄漏导致,可通过调整ProcessModel配置中的maxWorkerThreads参数限制并发线程数,或启用GC服务器模式(在运行时添加--gc-server参数)。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-12-31 13:21
下一篇 2025-12-31 13:39

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信