Build và chạy một ứng dụng Web .NET Core (.NET 6/7/8) trên CentOS

4️⃣ Chạy ứng dụng trên CentOS

Chạy trực tiếp

dotnet run
  • Mặc định ứng dụng sẽ chạy trên http://localhost:5000https://localhost:5001.
  • Bạn có thể mở firewall để truy cập từ bên ngoài:
sudo firewall-cmd --add-port=5000/tcp --permanent
sudo firewall-cmd --reload

Chạy ở chế độ production

dotnet publish -c Release -o /var/www/mywebapp
cd /var/www/mywebapp
dotnet MyWebApp.dll

5️⃣ Cài đặt dịch vụ systemd để chạy tự động

Tạo file dịch vụ:

sudo nano /etc/systemd/system/mywebapp.service

Nội dung ví dụ:

[Unit]
Description=My .NET WebApp

[Service]
WorkingDirectory=/var/www/mywebapp
ExecStart=/usr/bin/dotnet /var/www/mywebapp/MyWebApp.dll --urls "http://0.0.0.0:5000"
Restart=always
RestartSec=10
SyslogIdentifier=dotnet-mywebapp
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target

Sau đó kích hoạt:

sudo systemctl daemon-reload
sudo systemctl enable mywebapp.service
sudo systemctl start mywebapp.service
sudo systemctl status mywebapp.service

Ứng dụng của bạn bây giờ sẽ chạy như một service, tự khởi động cùng máy chủ.

Reload và restart service nếu cần:

sudo systemctl daemon-reload
sudo systemctl restart mywebapp.service

6. Xem log dịch vụ (rất quan trọng khi debug)

sudo journalctl -fu mywebapp.service

7. Các lệnh quản lý dịch vụ khác

Dừng dịch vụ:

sudo systemctl stop mywebapp.service

Khởi động lại:

sudo systemctl restart mywebapp.service

Xóa tự chạy:

sudo systemctl disable mywebapp.service

6️⃣ (Tuỳ chọn) Dùng Nginx làm reverse proxy

  • Cài Nginx:
sudo dnf install nginx -y
sudo systemctl enable --now nginx
  • Cấu hình reverse proxy cho .NET:
server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass         http://127.0.0.1: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;
    }
}
  • Reload Nginx:
sudo nginx -s reload

Hãy bình luận đầu tiên

Để lại một phản hồi

Thư điện tử của bạn sẽ không được hiện thị công khai.


*