Ubuntu bir sunucuda birden fazla .NET Core tabanlı web sitesi barındırma rehberi

Paylaş :

Ubuntu bir sunucuda birden fazla .NET Core tabanlı web sitesi barındırmak, lisans maliyetlerini azaltmak için harika bir seçenektir. İşte bunu gerçekleştirmek için adım adım bir rehber:

Ubuntu bir sunucuda birden fazla .NET Core tabanlı web sitesi barındırma rehberi

1. Sunucu Hazırlığı

  1. Ubuntu Sunucusunu Kurun:

    • Uygun bir Ubuntu sürümünü (örneğin Ubuntu 20.04 LTS) yükleyin.
    • Güncellemeleri yapın:
      sudo apt update && sudo apt upgrade -y
  2. Gerekli Paketleri Kurun:

    • curl, wget, ve unzipgibi temel araçları yükleyin:
      sudo apt install curl wget unzip -y

2. .NET SDK ve Runtime Yükleme

  1. Microsoft Paket Deposu Ekleyin:

    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt update
  2. .NET SDK ve Runtime'ı Yükleyin:

    • Yalnızca çalıştırmak için Runtime yeterlidir:
      sudo apt install -y aspnetcore-runtime-7.0
    • Geliştirme de yapacaksanız SDK'yı yükleyin:
      sudo apt install -y dotnet-sdk-7.0

3. Uygulamaları Sunucuya Yükleme

  1. Web Sitelerini Yayınlama:

    • Projenizi dotnet publishkomutuyla yayınlayın:
      dotnet publish -c Release -o ./publish
  2. Yayınlanan Dosyaları Sunucuya Kopyalayın:

    • scp veya bir FTP istemcisi ile dosyaları sunucuya aktarın:
      scp -r ./publish user@your-server-ip:/var/www/site1

4. Reverse Proxy Yapılandırması (NGINX veya Apache)

  1. NGINX'i Yükleyin:

    sudo apt install nginx -y
  2. NGINX Konfigürasyonu Oluşturun:

    • Her site için ayrı bir konfigürasyon dosyası yapın:
      sudo nano /etc/nginx/sites-available/site1.conf
    • İçeriği aşağıdaki gibi yapın:
      server { listen 80; server_name site1.com; location / { proxy_pass http://localhost: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; } }
  3. Konfigürasyonu Aktif Hale Getirin:

    sudo ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/ sudo systemctl restart nginx

5. Sistem Servisi Olarak .NET Uygulamasını Çalıştırma

  1. Systemd Servis Dosyası Oluşturun:

    sudo nano /etc/systemd/system/site1.service
    • Aşağıdaki içeriği ekleyin:
      [Unit] Description=Site1 .NET App After=network.target [Service] WorkingDirectory=/var/www/site1 ExecStart=/usr/bin/dotnet /var/www/site1/yourapp.dll Restart=always RestartSec=10 SyslogIdentifier=site1 User=www-data Environment=ASPNETCORE_ENVIRONMENT=Production [Install] WantedBy=multi-user.target
  2. Servisi Etkinleştirin ve Başlatın:

    sudo systemctl enable site1.service sudo systemctl start site1.service

6. Alan Adlarını Yönlendirme ve SSL Sertifikası

  1. Alan Adlarını Sunucuya Yönlendirin:

    • DNS ayarlarında sunucunun IP adresine yönlendirin.
  2. SSL Sertifikası Alın (Let's Encrypt):

    sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d site1.com -d www.site1.com
    • Otomatik yenileme için bir cron job oluşturun:
      sudo crontab -e
      Ve şunu ekleyin:
      0 3 * * * certbot renew --quiet

7. Yedekleme ve İzleme

  1. Yedekleme Yapın:

    • Veritabanı ve uygulama dosyalarını düzenli olarak yedekleyin.
  2. Log İzleme:

    • Uygulama ve NGINX loglarını takip edin:
      sudo journalctl -u site1.service sudo tail -f /var/log/nginx/access.log

Hesabınızı yönetmek için giriş yapın

veya