《步步入門》.NET6在Linux下以守護進程方式運行



前言

​ 在《步步入門》 .NET 6 部署到Linux 一文中只是演示了控制終端方式運行ASP.ENT,在實際的應用中,這種方式不能確保服務延續性。如果控制終端關閉,或者服務器重啟,都會導致web服務不能正常訪問。那要怎么解決這個問題呢?

常見的作法有兩種

  1. 守護進程

    什么是守護進程,簡單講就是不受其他進程影響以后台服務的進程,功能類似Windows服務。

    守護進程我們使用Supervisor,詳細參考這位博友的文章:ASP.NET Core Linux下為 dotnet 創建守護進程(必備知識)

    下面我們開始在Ubuntu上使用守護進程方式運行Asp.net core

    安裝Supervisor

    sudo apt-get install supervisor
    

    配置

    cd /etc/supervisor/conf.d #進入配置目錄
    vim aptest.conf # 創建aptest命名的配置文件
    

    編寫配置文件

    [program:apptest] #程序名稱
    command=dotnet apptest.dll  #要執行的命令 apptest是程序名稱
    directory=/home/zzw/ubuntu2004 #命令執行的目錄
    environment=ASPNETCORE__ENVIRONMENT=Production #環境變量
    user=***  #進程執行的用戶身份
    stopsignal=INT
    autostart=true #是否自動啟動
    autorestart=true #是否自動重啟
    startsecs=1 #自動重啟間隔
    stderr_logfile=/var/log/apptest.err.log #標准錯誤日志
    stdout_logfile=/var/log/apptest.out.log #標准輸出日志
    

    image-20211201212537008

    配置完成,按Esc鍵,並輸入:wq 保存退出配置。

    重新加載配置,並重新啟動 supervisorctl

    sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf #重新加載配置
    sudo service supervisor stop #停止
    sudo service supervisor start #啟動
    

    測試

    訪問地址 測試演示 http://182.43.158.96:8880

    image-20211201215058817

  2. 反向代理,參見微軟官方文檔

    使用 Apache 在 Linux 上托管 ASP.NET Core | Microsoft Docs

    使用 Nginx 在 Linux 上托管 ASP.NET Core | Microsoft Docs


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM