1. 准备工作
在开始部署Asp.net Core应用程序之前,需要完成以下准备工作:
1.1 安装Linux环境
首先需要在Linux服务器上安装所需的基本环境,包括.NET Core运行时、ASP.NET Core运行时、Node.js、npm等,以及用于安装.NET Core SDK的wget和libunwind8。
安装完成后,可以使用以下命令来验证.NET Core是否已正确安装:
dotnet --info
如果显示了.NET Core版本信息,则说明已成功安装。
1.2 准备Asp.net Core应用程序
在开始部署Asp.net Core应用程序之前,需要将应用程序打包为Linux可执行文件。可以使用以下命令将应用程序打包为self-contained可执行文件:
dotnet publish -c Release -r linux-x64
其中,-c选项用于指定发布模式为Release,-r选项用于指定运行时为Linux x64。
2. 部署Asp.net Core应用程序
完成准备工作后,可以开始将Asp.net Core应用程序部署到Linux服务器上。以下是详细步骤:
2.1 上传应用程序文件
使用scp命令将应用程序发布文件夹上传到Linux服务器上:
scp -r /path/to/publish/folder user@linux-server:/path/to/app/folder
其中,user为Linux服务器的用户名,linux-server为Linux服务器的IP地址或主机名,/path/to/publish/folder为应用程序发布文件夹所在的本地路径,/path/to/app/folder为应用程序在Linux服务器上的目标路径。
2.2 配置Nginx作为反向代理
在Linux服务器上安装Nginx,并配置为应用程序的反向代理。可以使用以下命令安装Nginx:
sudo apt-get install nginx
安装完成后,在/etc/nginx/sites-available/目录下创建一个新文件,例如myapp,写入以下配置信息:
server {
listen 80;
server_name myapp.com; # 将myapp.com替换为实际的域名或IP地址
location / {
proxy_pass http://localhost:5000; # 将5000替换为实际的Kestrel端口号
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;
}
}
保存配置文件后,在/etc/nginx/sites-enabled/目录下创建一个符号链接,将myapp文件链接到该目录。然后使用以下命令重启Nginx:
sudo service nginx restart
Nginx已配置完成,可以通过访问http://myapp.com来测试应用程序是否可以通过Nginx反向代理访问。
2.3 启动应用程序
使用以下命令进入应用程序发布文件夹,并启动应用程序:
cd /path/to/app/folder
./myapp
其中,myapp为应用程序的可执行文件名。
启动应用程序时,可能会出现缺少依赖项的错误。可以使用以下命令安装缺少的依赖项:
sudo apt-get install libunwind8
应用程序已部署完成,可以通过Nginx反向代理访问。