+1

Hướng dẫn deploy website ASP.NET lên VPS/Server có auto deploy cực kỳ đơn giản

Xin chào các bạn trong series Hướng dẫn deploy website lên VPS/Server có auto deploy cực kỳ đơn giản

Lần này mình sẽ hướng dẫn bạn deploy web app ASP.NET

Trong bài viết Hướng dẫn deploy website Laravel lên VPS/Server có auto deploy cực kỳ đơn giản mình đã có hướng dẫn chi tiết cách

Kết nối máy chủ

Database

Cấu hình website ASP.NET

Giả sử bạn có 1 website ASP.NET muốn chạy dưới domain domain.com

  1. Vào kho ứng dụng, cài đặt ứng dụng ASP.NET

    image.png

  2. Tạo trang web với cấu hình như sau

    image.png

    • Nhập domain
    • Chọn Proxy Port
    • Nhập port mà ứng dụng ASP.NET của bạn chạy, ví dụ 3000
  3. Cài đặt mã nguồn cho trang web từ git hoặc tự tải lên

  4. Update Database & Build & Publish

    Mở terminal cho website lên

    image.png

    dotnet ef database update
    dotnet build
    dotnet publish
    
  5. Tạo Service cho website

    Sử dụng tính năng quản lý Service để tạo service

    Tạo service có tên domain_com (bạn đặt domain_com hay gì tùy ý nhưng lưu ý là ngắn gọn, dễ nhớ, không có ký tự đặt biệt gì)

    Nội dung domain_com bạn tham khảo dưới đây

    [Unit]
    Description=ASP.NET - domain.com
    
    [Service]
    WorkingDirectory=/home/flashvps/domain.com
    ExecStart=/usr/bin/dotnet /home/flashvps/domain.com/bin/Debug/netcoreapp8.0/publish/domain_com.dll --urls "http://127.0.0.1:3000"
    Restart=always
    RestartSec=10
    KillSignal=SIGINT
    SyslogIdentifier=domain_com
    User=flashvps
    Environment=ASPNETCORE_ENVIRONMENT=Production
    Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
    
    [Install]
    WantedBy=multi-user.target
    

    ::: warning

    • thay 3000 thành proxy port bạn đã khai báo lúc tạo website trước đó
    • Bạn hãy thay domain.com thành tên miền tương ứng với website của bạn
    • flashvps là user mà website đang chạy, hãy thay flashvps tương ứng với user mà website đang chạy (chú ý không được đặt là root)
    • bin/Debug/netcoreapp8.0/publish/domain_com.dll là đường dẫn tới file dll mà dotnet publish tạo ra
    • Linux có hệ thống tệp phân biệt chữ hoa chữ thường. Việc đặt ASPNETCORE_ENVIRONMENT thành Production sẽ dẫn đến tìm kiếm tệp cấu hình appsinstall.Production.json, chứ không phải appssettings.production.json.
    • Dấu phân cách dấu hai chấm ( : ) không được hỗ trợ trong tên biến môi trường. Hãy sử dụng dấu gạch dưới kép (__) thay cho dấu hai chấm. Hệ thống sẽ chuyển đổi dấu gạch dưới kép thành dấu hai chấm khi các biến môi trường được đọc vào cấu hình. Trong ví dụ sau , khóa chuỗi kết nối ConnectionStrings:DefaultConnection được đặt vào tệp định nghĩa dịch vụ là ConnectionStrings__DefaultConnection
      Environment=ConnectionStrings__DefaultConnection={Connection String}
      

    :::

Truy cập website để xem kết quả thành công nhé!

Auto Deploy


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí