前言:为什么选择在Linux上运行.NET Core?
随着.NET Core的跨平台特性日益完善,越来越多的开发者选择在Linux服务器上部署.NET应用。相比Windows服务器,Linux云服务器通常具有更好的性能、更高的稳定性和更低的成本。本文将详细介绍如何在主流Linux发行版上安装和配置.NET Core运行环境。
准备工作
- 一台运行Ubuntu 18.04+/CentOS 7+的云服务器
- SSH客户端工具
- sudo权限的用户账户
- 稳定的网络连接
方法一:通过官方包管理器安装(推荐)
Ubuntu/Debian系统
# 1. 添加Microsoft包签名密钥
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
# 2. 更新软件包列表
sudo apt-get update
# 3. 安装.NET Core SDK
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-sdk-5.0
# 4. 验证安装
dotnet --version
CentOS/RHEL系统
# 1. 添加Microsoft仓库
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
# 2. 安装.NET Core SDK
sudo yum install -y dotnet-sdk-5.0
# 3. 验证安装
dotnet --version
方法二:通过二进制文件手动安装
当您的系统不在官方支持列表时,可以采用此方法:
# 1. 下载.NET Core二进制包
wget https://download.visualstudio.microsoft.com/download/pr/xxxxxx/dotnet-sdk-5.0.xxx-linux-x64.tar.gz
# 2. 创建安装目录
mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-5.0.xxx-linux-x64.tar.gz -C $HOME/dotnet
# 3. 添加到PATH环境变量
export PATH=$PATH:$HOME/dotnet
# 4. 使变更永久生效(添加到.bashrc或.zshrc)
echo 'export PATH=$PATH:$HOME/dotnet' >> ~/.bashrc
source ~/.bashrc
环境配置和优化
1. 设置性能优化参数
# 编辑/etc/sysctl.conf添加以下参数
vm.swappiness=10
vm.max_map_count=262144
2. 配置反向代理(Nginx)
server {
listen 80;
server_name example.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;
}
}
3. 设置守护进程(systemd)
[Unit]
Description=My .NET Core App
[Service]
WorkingDirectory=/var/www/myapp
ExecStart=/usr/bin/dotnet /var/www/myapp/myapp.dll
Restart=always
RestartSec=10
SyslogIdentifier=dotnet-myapp
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
常见问题解决
- 缺少依赖项:运行
sudo apt-get install -y libunwind8 libssl1.0 - 权限问题:确保应用程序目录有正确的权限
- 端口占用:使用
netstat -tulnp检查端口冲突 - 性能问题:考虑使用Kestrel + Nginx反向代理架构
最佳实践建议
- 始终使用LTS(长期支持)版本的.NET Core
- 在生产环境中使用反向代理(Nginx/Apache)
- 配置自动重启机制(如systemd)
- 定期更新.NET Core运行时和安全补丁
- 使用Docker容器化部署提高可移植性
总结
在Linux云服务器上安装和配置.NET Core环境是一个相对简单但需要谨慎的过程。通过本文介绍的两种安装方法和详细配置步骤,您应该能够在各种Linux发行版上成功部署.NET Core应用程序。记得遵循最佳实践,特别是关于安全性和性能优化的建议,以确保您的应用程序能够稳定高效地运行。
