ToB企服应用市场:ToB评测及商务社交产业平台

标题: 如何部署ASP.NET Core到Linux服务器 [打印本页]

作者: 立聪堂德州十三局店    时间: 2023-6-26 21:03
标题: 如何部署ASP.NET Core到Linux服务器
如何部署ASP.NET Core 到Linux服务器

我们开发的最终目的,是将开发后的东西发布网络上,以便自己及其他人使用。
本篇博客介绍如果在 linux 上部署 ASP.NET Core应用,使用nginx+systemd 来管理我们的应用。
准备

安装

配置

配置Nginx

配置文件

nginx默认配置会加载/etc/nginx/sites-enabled中的网站,通常我们并不会在该目录下直接配置网站,而只是定义需要生效网站的软链接,实际定义文件通常在/etc/nginx/sites-available目录去定义。
  1. cd /etc/nginx/sites-availabe
  2. sudo vim my-web
复制代码
以为下nginx 的配置示例
  1. server {
  2.     listen        80;
  3.     server_name _;
  4.     location / {
  5.         proxy_pass         http://localhost:5000;
  6.         proxy_http_version 1.1;
  7.         proxy_set_header   Upgrade $http_upgrade;
  8.         proxy_set_header   Connection keep-alive;
  9.         proxy_set_header   Host $host;
  10.         proxy_cache_bypass $http_upgrade;
  11.         proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
  12.         proxy_set_header   X-Forwarded-Proto $scheme;
  13.     }
  14. }
复制代码
[!TIP]
proxy_pass,意思是用户访问先经过nginx,然后nginx会路由到 proxy_pass 地址,这个地址也就是asp.net core 服务实际运行使用的地址.
让配置文件生效

我们已经在/etc/nginx/sites-available下创建了 my-web配置文件,现在来创建软链接。
  1. cd  /etc/nginx/sites-enable
  2. sudo ln -s /etc/nginx/sites-available/my-web  ./
复制代码
接下来我们可以使用nginx -t来测试配置文件是否正确。
最后使用配置文件生效,可使用nginx -s reload来重载nginx的配置,以使新站点配置生效。
  1. sudo nginx -t
  2. sudo nginx -s reload
复制代码
配置服务以自动启动

systemctl 命令用于管理“服务”或“守护程序”。 守护程序的概念与 Windows 服务的概念类似。 当系统启动时,可以自动重启此类服务。
我们需要将我们的应用配置成服务,这样就可以自动运行。
创建服务文件

在/etc/systemd/system/目录下创建服务文件,
  1. cd /etc/systemd/system/
  2. sudo vim dusi.service
复制代码
内容如下:
  1. [Unit]
  2. Description=dusi web site
  3. [Service]
  4. WorkingDirectory=/var/dusi/
  5. ExecStart=/usr/bin/dotnet /var/dusi/Http.API.dll
  6. Restart=always
  7. # Restart service after 10 seconds if the dotnet service crashes:
  8. RestartSec=10
  9. KillSignal=SIGINT
  10. SyslogIdentifier=dusi-log
  11. User=www-data
  12. Environment=ASPNETCORE_ENVIRONMENT=Production
  13. Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
  14. [Install]
  15. WantedBy=multi-user.target
复制代码
以下是此内容的一些关键方面:
让服务文件生效

如同以上nginx配置,我们定义了文件,同时也需要创建软链接,以让系统使用它,不过服务我们可以通过命令来创建软链接.
  1. sudo systemctl enable dusi.service
复制代码
启动服务并查看状态

使用systemctl start启动服务,然后通过systemctl status命令查看服务运行状态。
  1. sudo systemctl start stock.service
  2. sudo systemctl status stock.service
复制代码
部署

部署指将你的文件上传到服务器上,请注意上传的路径最终要和上面服务配置文件中的路径对应。
上传文件到服务器有很多种方式,这里我们使用scp手动传输我们的文件,当然你可以配置其他方式或使用CICD。
示例命令:
  1. scp /my/publish/*  user@10.10.10.1/var/dusi/
复制代码
[!NOTE]
Windows系统Powershell(非Windows Powershell)也可以使用scp命令,你并不需要安装额外的软件。
其他参考

查看日志

在linux 中,你可以通过journalctl命令查看日志,示例:
journalctl -fu dusi.service
参考资料


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4