Asp.NetCore应用--部署到 ubuntu 进行托管
准备过程
- netcore linux发布包(本人是通过vs2017发布)
- ubuntu 16.0.4虚机
进行托管
ubuntu netcore发布文件路径
服务器设置为将对 http://<serveraddress>:80
发起的请求转接到在 http://127.0.0.1:5000
中的 Kestrel 上运行的 ASP.NET Core 应用。 但是,未将 Nginx 设置为管理 Kestrel 进程。 systemd 可用于创建服务文件以启动和监视基础 Web 应用。 systemd 是一个 init 系统,可以提供用于启动、停止和管理进程的许多强大的功能。
开始创建服务文件 Kestrel-mysqlfilter.service
sudo nano /etc/systemd/system/kestrel-mysqlfilter.service
添加服务文件内容:
[Unit] Description= .NET Console App running on Ubuntu [Service] WorkingDirectory=/usr/local/application/mysqlfilter/publish ExecStart=/usr/bin/dotnet Edensoft.Label.Storage.Filter.dll Restart=always # Restart service after 10 seconds if the dotnet service crashes: RestartSec=10 KillSignal=SIGINT SyslogIdentifier=dotnet-mysqlfilter User=root Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install] WantedBy=multi-user.target
如果不想配置使用用户 为root,则必须先创建此处定义的用户,并为该用户提供适当的文件所有权。
最后ctrl+o 保存 、ctrl+x退出
将服务文件注册到系统中
sudo systemctl enable kestrel-mysqlfilter.service
启用该服务,并确认它正在运行
sudo systemctl start kestrel-mysqlfilter.service sudo systemctl status kestrel-mysqlfilter.service
查看日志
使用 Kestrel 的 Web 应用是通过 systemd
进行管理的,因此所有事件和进程都被记录到集中日志。 但是,此日志包含由 systemd
管理的所有服务和进程的全部条目。 若要查看特定于 kestrel-mysqlfilter.service
的项,请使用以下命令:
sudo journalctl -fu kestrel-mysqlfilter.service
有关进一步筛选,使用时间选项(如 --since today
、--until 1 hour ago
)或这些选项的组合可以减少返回的条目数。
sudo journalctl -fu kestrel-mysqlfilter.service --since "2019-08-18" --until "2019-08-18 17:00"
结束语
参考地址:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.2