下面是.NET Core WebApi部署在Linux服务器上的详细攻略:
1. 安装相关软件
在Linux服务器上安装.NET Core Runtime和ASP.NET Core Runtime,可以使用以下命令:
sudo apt-get update
sudo apt-get install dotnet-runtime-3.1
sudo apt-get install aspnetcore-runtime-3.1
此外,还需要安装Nginx和Supervisor,Nginx用于反向代理,Supervisor用于后台进程管理。
sudo apt-get install nginx
sudo apt-get install supervisor
2. 编译WebApi
使用Visual Studio或者dotnet命令行工具编译WebApi项目,生成可执行文件。
dotnet publish -c Release -o /var/www/mywebapi
此处需要注意的是,/var/www/mywebapi是一个你自己创建的目录,用于存放编译好的WebApi文件。
3. 配置Nginx
在/etc/nginx/sites-available目录下创建一个文件,文件名可以自定义,例如mywebapi,文件内容参考以下模板:
server {
listen 80;
server_name mywebapi.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;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
此处需要将mywebapi.example.com替换成你自己的域名或IP地址,同时将proxy_pass后面的端口号改成你WebApi项目所使用的端口号。
完成后,使用以下命令启用这个配置文件:
sudo ln -s /etc/nginx/sites-available/mywebapi /etc/nginx/sites-enabled/mywebapi
最后,重新启动Nginx服务:
sudo service nginx restart
4. 配置Supervisor
在/etc/supervisor/conf.d目录下创建一个文件,文件名可以自定义,例如mywebapi.conf,文件内容参考以下模板:
[program:mywebapi]
command=/usr/bin/dotnet /var/www/mywebapi/MyWebApi.dll
directory=/var/www/mywebapi
numprocs=1
user=www-data
autostart=true
autorestart=true
stdout_logfile=/var/log/mywebapi/out.log
stderr_logfile=/var/log/mywebapi/err.log
此处需要将MyWebApi.dll改成你的WebApi项目的文件名,并将numprocs改成你需要启动的进程数。若需要使用系统上已有的普通用户运行这个进程,可以将user字段改为普通用户,例如myuser。
完成后,使用以下命令启动这个进程:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start mywebapi
至此,我们的.NET Core WebApi部署在Linux服务器上就完成了。
示例一
假设我们要将一个名为MyProject的WebApi项目部署到Linux服务器上,该项目的端口号为5000。
在Visual Studio中打开项目,选择Publish to Folder,将输出路径设置为/var/www/myproject,然后点击Publish按钮。
完成后,在Linux服务器上打开终端,输入以下命令启动这个项目:
cd /var/www/myproject
dotnet MyProject.dll
此时,我们的WebApi就已经启动,可以通过http://<服务器地址>:5000/访问它。
若想将其通过Nginx反向代理,可以参考上面的Nginx部分进行配置。
最后使用Supervisor将这个WebApi项目作为一个后台进程运行。
示例二
假设我们已经使用dotnet命令行工具通过以下命令创建了一个名为MyAPI的WebApi项目:
dotnet new webapi -n MyAPI
接下来我们需要编译并部署这个WebApi项目到Linux服务器上。
首先,在命令行中执行以下命令,将项目编译为可运行文件:
cd MyAPI
dotnet publish -c Release -o /var/www/myapi
这个命令将生成一个可运行的WebApi文件,并将其输出到/var/www/myapi目录下。
接下来,我们需要使用Nginx进行反向代理,这里假设已经在Nginx中创建了一个名为myapi.example.com的配置,并将其代理到http://localhost:5000。
最后,使用Supervisor将这个WebApi项目作为一个后台进程运行。在命令行中执行以下命令:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start MyAPI
至此,我们的.NET Core WebApi就部署在Linux服务器上了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:.Net Core WebApi部署在Linux服务器上的方法 - Python技术站