Triển Khai .NET Web API Trên Linux: Biến Ứng Dụng Thành 'Chiến Binh Bất Tử' Với Systemd!
Lê Lân
1
Hướng Dẫn Triển Khai .NET Web API Trên Linux Với systemd
Mở Đầu
Bạn muốn triển khai ứng dụng .NET Web API trên Linux một cách chuyên nghiệp và ổn định? Hãy cùng khám phá cách sử dụng systemd – tiêu chuẩn vàng trong quản lý dịch vụ hệ thống – để đảm bảo ứng dụng của bạn tự động phục hồi ngay khi xảy ra lỗi hoặc máy chủ khởi động lại.
Trong bài viết này, bạn sẽ được hướng dẫn từng bước từ chuẩn bị môi trường, cài đặt .NET SDK, tạo dự án mẫu, đến việc cấu hình và quản lý dịch vụ với systemd. Kết thúc bài viết, ứng dụng của bạn sẽ vận hành trơn tru, tự động khởi động lại để tránh gián đoạn dịch vụ.
Bước 1: Chuẩn Bị Môi Trường
Yêu cầu thiết bị và quyền truy cập
Trước khi bắt đầu, bạn cần:
🖥️ Máy chủ Linux: Bất cứ distro phổ biến nào như Ubuntu, CentOS, miễn là có kết nối mạng.
🔑 Quyền Root hoặc Sudo: Để cài đặt phần mềm và cấu hình dịch vụ.
⚙️ .NET SDK: Phiên bản phù hợp với hệ điều hành của bạn.
Kiểm tra cài đặt .NET
Nếu bạn đã có .NET SDK, hãy xác nhận bằng các lệnh sau:
dotnet --list-sdks
dotnet --list-runtimes
dotnet --version
Nếu chưa, chuyển sang phần cài đặt bên dưới.
Đảm bảo .NET SDK được cài đặt chính xác trước khi triển khai để tránh lỗi không mong muốn.
Bước 2: Cài Đặt .NET SDK Trên Linux
Hướng dẫn cài đặt trên Ubuntu / Debian
Mở terminal và chạy:
sudo apt update
sudo apt install dotnet-sdk-8.0
Các hệ điều hành khác như CentOS hay Fedora sẽ có lệnh tương ứng, bạn có thể tham khảo chi tiết tại trang chính thức của .NET.
Bước 3 (Tùy Chọn): Tạo Dự Án Mẫu Web API
Nếu bạn chưa có dự án, có thể tạo nhanh một ứng dụng mẫu:
dotnet new webapi -n MyWebApi
cd MyWebApi
Sau đó, publish ứng dụng để chuẩn bị triển khai:
dotnet publish -c Release -o ./publish
Bước 4: Tạo File Dịch Vụ systemd
Tạo file service
Tạo file quản lý dịch vụ trong thư mục /etc/systemd/system/:
sudo nano /etc/systemd/system/mywebapi.service
Cấu hình dịch vụ
Thêm nội dung dưới đây, thay thế /path/to/your/project/publish và các tham số cho phù hợp:
Người dùng Linux thực thi dịch vụ (cần có quyền truy cập)
Environment
Thiết lập môi trường, thường là Production để tối ưu hiệu năng
Điều chỉnh chính xác đường dẫn và người dùng để đảm bảo dịch vụ hoạt động đúng.
Bước 5: Khởi Động Và Kích Hoạt Dịch Vụ
Nạp lại systemd để nhận file service mới
sudo systemctl daemon-reload
Quản lý dịch vụ
sudo systemctl start mywebapi.service
sudo systemctl enable mywebapi.service
sudo systemctl status mywebapi.service
Để dừng dịch vụ:
sudo systemctl stop mywebapi.service
Bước 6: Kiểm Tra Triển Khai
Mở trình duyệt và truy cập http://your_domain_or_ip/ để xem ứng dụng chạy.
Hoặc sử dụng công cụ như curl, Postman để gửi request kiểm tra endpoint:
curl http://your_domain_or_ip/
Bước 7: Giám Sát Nhật Ký (Logs)
Nếu có sự cố, hãy kiểm tra logs để debug:
sudo journalctl -u mywebapi.service -f
Logs rất quan trọng để phát hiện nguyên nhân lỗi và điều chỉnh dịch vụ kịp thời.
Mission Accomplished – Hoàn Thành Nhiệm Vụ
Chúc mừng bạn! Ứng dụng .NET Web API của bạn đã được triển khai trên Linux với dịch vụ systemd đảm bảo hoạt động ổn định, tự động khởi động lại khi gặp sự cố hoặc sau khi server reboot.
Bước tiếp theo:
Thiết lập reverse proxy như Nginx hoặc Apache để đảm bảo bảo mật và hiệu năng.
Áp dụng SSL để mã hóa dữ liệu.
Tối ưu hiệu suất và giám sát nâng cao.
Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại tìm kiếm trợ giúp hoặc học hỏi thêm từ cộng đồng phát triển .NET.