Debian使用服务单元部署asp.net core

创建 /etc/systemd/system/your_app.service 文件,替换为适合你的应用的名称:

[Unit]
Description=ASP.NET Core Application

[Service]
WorkingDirectory=/path/to/your_app/publish
ExecStart=/usr/bin/dotnet /path/to/your_app/publish/your_app.dll
Restart=always
RestartSec=10
SyslogIdentifier=dotnet-your_app
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target
  • WorkingDirectory:应用程序的工作目录(发布目录)。
  • ExecStart:启动应用的命令,这里指定 dotnet 和应用的 DLL 文件路径。
  • Restart:配置应用异常退出时自动重启。
  • SyslogIdentifier:指定日志标识符,可以方便地过滤日志。
  • User:指定运行服务的用户(例如 www-data,避免使用 root 用户)。
  • Environment:指定环境变量(如 Production)。

启动并启用服务

sudo systemctl enable your_app.service
sudo systemctl start your_app.service

查看服务状态:

sudo systemctl status your_app.service

查看服务日志:

sudo journalctl -u your_app.service

nginx 反代模板:

server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass https://www.laowunotes.com: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 journalctl -u your_app.service -f
  • -u your_app.service 指定服务名称,替换为你的服务文件名称。
  • -f 表示实时跟踪日志输出(类似 tail -f)。

查看全部日志

查看应用自启动以来的全部日志:

sudo journalctl -u your_app.service

这将显示该服务的全部日志记录。

按时间范围查看日志

可以按时间范围筛选日志,例如查看过去一小时的日志:

sudo journalctl -u your_app.service --since "1 hour ago"

或者查看特定日期之后的日志:

sudo journalctl -u your_app.service --since "2024-11-01"

按关键字过滤日志

如果你只想查看特定关键字的日志,例如包含错误信息的日志,可以使用 grep 命令进行过滤:

sudo journalctl -u your_app.service | grep "error"

 清除指定服务的日志

要清除特定服务(如 ASP.NET Core 应用)的日志,可以使用 journalctl 的 –vacuum 选项。虽然 journalctl 没有直接提供按服务清除的功能,但可以通过指定服务名来筛选日志,再结合清除命令:

sudo journalctl --vacuum-size=100M -u your_app.service

这将限制日志文件的总大小为 100MB,多余的日志会被删除。将 100M 替换为你期望的日志限制大小。

清除日志到指定时间点

你可以通过 –vacuum-time 参数清除指定时间之前的所有日志数据:

sudo journalctl --vacuum-time=7d

这将清除 7 天之前的所有日志数据,包括所有服务的日志(不是仅 ASP.NET Core 应用)。

清除所有 journald 日志

如果你希望彻底清除所有 journald 日志数据(适用于开发或测试环境,生产环境需谨慎),可以使用以下命令:

sudo journalctl --vacuum-size=1M

这会将日志数据限制为 1MB,基本相当于清空所有日志数据。

如果你希望彻底清除所有 journald 日志数据(适用于开发或测试环境,生产环境需谨慎),可以使用以下命令:

sudo journalctl –vacuum-size=1M

删除 journal 日志文件

可以手动删除存储在 /var/log/journal/ 目录下的日志文件。这样会清空所有服务的日志,建议谨慎使用。

sudo rm -rf /var/log/journal/*
sudo systemctl restart systemd-journald

定期清理

可以在 journald 配置文件 /etc/systemd/journald.conf 中设置日志的最大保留大小或时间,定期清理旧日志。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注