Ubuntu Linux Sunucusunda Apache Kullanarak Birden Fazla ASP.NET Core Uygulaması Barındırma

Paylaş :

Ubuntu Linux Sunucusunda Apache Kullanarak Birden Fazla ASP.NET Core Uygulaması Barındırma ASP.NET Core, Windows, Mac, Linux, iOS ve Android platformlarında uygulama geliştirmeyi destekleyen çapraz platform bir web geliştirme framework'üdür.

Ubuntu Linux Sunucusunda Apache Kullanarak Birden Fazla ASP.NET Core Uygulaması Barındırma

ASP.NET Core, Windows, Mac, Linux, iOS ve Android platformlarında uygulama geliştirmeyi destekleyen çapraz platform bir web geliştirme framework'üdür. Bir ASP.NET Core uygulamasını Linux'ta barındırmak, Windows'ta barındırmaya kıyasla daha karmaşıktır. Bu makalede, bir Ubuntu Linux sunucusunda Apache'yi ters proxy sunucu olarak kullanarak birden fazla ASP.NET Core uygulamasını nasıl kolayca barındırabileceğinizi açıklayacağım.

Haydi başlayalım!

Linux Sunucusuna Bağlanın

Bu blog yazısı için, ASP.NET Core uygulamasını geliştirmek için bir Windows makinesi kullandığınızı varsayalım. Windows makinesini PuTTY kullanarak bir Linux sunucusuna bağlayacağız. Linux makinesine bağlanmak için PuTTY Yapılandırma penceresine sunucu IP adresini ve root şifresini girin.

Gerekli Bağımlılıkları ve .NET Core Framework'ü Yükleyin

Sonraki adımda, ASP.NET Core uygulamasını Linux Ubuntu sunucusunda barındırmak için .NET Core Framework'ü indirip yükleyeceğiz. .NET Framework'ü yüklemeden önce, onun bağımlılıklarını kurmamız gerekiyor.

Bağımlılıkları yüklemek için aşağıdaki komutu PuTTY'ye kopyalayıp yapıştırın:

wget https://packages.microsoft.com/config/ubuntu/19.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb

ASP.NET Core Runtime Ağını Yükleyin

Yayınlanmış uygulamayı çalıştırmak için kullanılan ASP.NET Core runtime ağını yükleyin. Yüklemeden önce, Linux dokümantasyonunda desteklenen dağıtımları okuyun. Burada, ASP.NET Core 3.1 sürümünü yükledim. Aşağıdaki komutları kullanın:

sudo apt-get update; \ sudo apt-get install -y apt-transport-https && \ sudo apt-get update && \ sudo apt-get install -y aspnetcore-runtime-3.1

Apache Sunucusunu Yükleyin

Apache sunucusu, ters proxy görevi görecek ve internetten gelen isteği Kestrel Sunucusu'na iletecektir. Aşağıdaki komutu kullanarak Linux makinesine Apache sunucusunu yükleyin:

sudo apt install apache2

Gerekli Modülleri Yükleyin

Apache Sunucusunu yükledikten sonra, aşağıdaki gerekli modülleri yükleyin:

sudo apt-get update; \ sudo apt-get install -y apt-transport-https && \ sudo apt-get update && \ sudo apt-get install -y aspnetcore-runtime-3.1

Apache Sunucusunu Yeniden Başlatın

Aşağıdaki komutu kullanarak Apache sunucusunu yeniden başlatın:

sudo service apache2 restart

Uygulama Dosyalarını Linux Sunucusuna Taşıyın

ASP.NET Core uygulama dosyalarınızı Linux sunucusuna taşımak için aşağıdaki adımları izleyin. Barındırmak istediğiniz ASP.NET Core uygulamasını yerel bir klasöre yayınlayın. Ardından, yayınlanmış dosyaları taşımak için FileZilla kullanarak Linux sunucusuna bağlanın ve /var/www dizininde yeni bir klasör oluşturun, ardından yayınlanmış dosyaları bu klasöre taşıyın.

Uygulamayı Çalıştırmak İçin Bir Hizmet Oluşturun

ASP.NET Core uygulamasını çalıştırmak için bir hizmet dosyası oluşturun. Bunun için sample.service adında bir hizmet dosyası oluşturun ve aşağıdaki yapılandırmayı ekleyin:

[Unit] Description=Running ASP.NET Core on Ubuntu 18.04 Webserver APACHE [Service] WorkingDirectory=/var/www/sample/ ExecStart=/usr/bin/dotnet /var/www/sample/sample.dll Restart=always RestartSec=10 KillSignal=SIGINT SyslogIdentifier=dotnet-example User=www-data Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install] WantedBy=multi-user.target

Daha sonra, bu dosyayı etc/systemd/system/ konumuna taşıyın ve aşağıdaki komutları kullanarak hizmeti etkinleştirin ve başlatın:

sudo systemctl enable sample.service sudo systemctl start sample.service

Bir Host Yapılandırma Dosyası Oluşturun

sample.conf adında yeni bir host yapılandırma dosyası oluşturun ve aşağıdaki yapılandırmayı ekleyin:

ServerName www.sample.com ProxyPreserveHost On ProxyPass / http://127.0.0.1:5000/ ProxyPassReverse / http://127.0.0.1:5000/ ErrorLog ${APACHE_LOG_DIR}/sample-error.log

Yapılandırma dosyasını Linux sunucusundaki etc/apache2/sites-available klasörüne taşıyın ve aşağıdaki komutları kullanarak yeni site yapılandırmasını etkinleştirin:

sudo a2ensite sample.conf sudo apachectl configtest

Hata yoksa, siteniz yayına hazır!

Birden Fazla ASP.NET Core Uygulaması Barındırma

Aynı Linux sunucusunda başka bir uygulama barındırmak için şu adımları izleyin:

  1. Yeni uygulamayı var/www/sample1 dizinine taşıyın.
  2. sample1.serviceadında yeni bir hizmet dosyası oluşturun ve aşağıdaki yapılandırmayı ekleyin:
    [Unit] Description=Running ASP.NET Core on Ubuntu 18.04 Webserver APACHE [Service] WorkingDirectory=/var/www/sample1/ ExecStart=/usr/bin/dotnet /var/www/sample1/sample1.dll Restart=always RestartSec=10 KillSignal=SIGINT SyslogIdentifier=dotnet-example User=www-data Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false Environment=ASPNETCORE_URLS=http://127.0.0.1:5001 [Install] WantedBy=multi-user.target
  3. Hizmeti etkinleştirip başlatın.
  4. sample1.confadında yeni bir host yapılandırma dosyası oluşturun ve 5001 portunu kullanacak şekilde proxy ayarını yapın:
    ServerName www.sample1.com ProxyPreserveHost On ProxyPass / http://127.0.0.1:5001/ ProxyPassReverse / http://127.0.0.1:5001/ ErrorLog ${APACHE_LOG_DIR}/sample-error.log
  5. .conf dosyasını sunucuya taşıyın ve siteyi etkinleştirin. Yeni barındırılan uygulamaya artık erişebilirsiniz.

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

veya