Ubuntu Linux Sunucusunda Apache Kullanarak Birden Fazla ASP.NET Core Uygulaması Barındırma
Üzeyir AYDIN
04 EylUbuntu 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.
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:
- Yeni uygulamayı
var/www/sample1
dizinine taşıyın. sample1.service
adı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
- Hizmeti etkinleştirip başlatın.
sample1.conf
adı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
- .conf dosyasını sunucuya taşıyın ve siteyi etkinleştirin. Yeni barındırılan uygulamaya artık erişebilirsiniz.
Müşteri Girişi
Hesabınızı yönetmek için giriş yapın