可以,ASP.NET Core 网站完全可以部署在阿里云的 Debian 服务器上。
✅ 前提条件
- 服务器操作系统为 Debian(如 Debian 10/11/12)
- 已安装 .NET SDK/Runtime(推荐 .NET 8 LTS,也可用 .NET 6/7)
- 有公网 IP、域名(可选)、防火墙配置权限
- 了解基本的 Linux 命令行操作
📌 部署步骤概览
1. 安装 .NET Runtime / SDK
# 添加 Microsoft 官方软件源(以 Debian 12 为例)
wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prol.deb
rm packages-microsoft-prod.deb
# 更新并安装 ASP.NET Core Runtime(生产环境只需 runtime)
sudo apt update
sudo apt install aspnetcore-runtime-8.0
# 若需本地开发或发布前编译,可额外安装 sdk:
# sudo apt install dotnet-sdk-8.0
💡 生产环境建议只安装
aspnetcore-runtime-*,减小攻击面;发布时可在本地机器打包成自包含(self-contained)或使用依赖托管方式。
2. 上传项目代码
- 使用
scp/rsync/ Git 克隆等方式将发布后的文件夹(含.dll、.json、web.config等)传到服务器,例如/var/www/myapp
3. 配置反向X_X(推荐 Nginx + Kestrel)
Kestrel 是 ASP.NET Core 默认服务器,但不建议直接暴露公网,应搭配 Nginx/Apache 做反向X_X。
示例:Nginx 配置(/etc/nginx/sites-available/myapp)
server {
listen 80;
server_name your-domain.com www.your-domain.com;
location / {
proxy_pass http://127.0.0.1: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;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
4. 使用 systemd 管理应用进程(生产必备)
创建服务文件 /etc/systemd/system/myapp.service:
[Unit]
Description=My ASP.NET Core App
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/myapp
ExecStart=/usr/bin/dotnet /var/www/myapp/YourApp.dll
Restart=always
RestartSec=10
Environment="DOTNET_ENVIRONMENT=Production"
Environment="ASPNETCORE_URLS=http://+:5000"
[Install]
WantedBy=multi-user.target
启动并设置开机自启:
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
sudo systemctl status myapp
5. (可选)HTTPS 配置
使用 Let’s Encrypt + Certbot 自动申请证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
🔒 安全建议
- 禁止 root 登录 SSH
- 使用非标准端口或仅开放 80/443
- 定期更新系统包和 .NET 运行时
- 配置防火墙(如
ufw):sudo ufw allow 'Nginx Full' sudo ufw allow OpenSSH sudo ufw enable
✅ 验证是否成功
访问 http://your-server-ip 或域名,应看到应用首页;检查日志:
sudo journalctl -u myapp -f
如需我提供具体命令脚本、Docker 部署方案,或针对某版本(如 .NET 6/8)的详细配置,欢迎告诉我你的环境细节!
轻量云Cloud