Aracılığıyla paylaş


Bölüm 2.7 - Nginx'te konak adını kullanarak ikinci bir web sitesi yapılandırma

Şunlar için geçerlidir: .NET Core 2.1, .NET Core 3.1, .NET 5

Bu makalede, Nginx'te konak adı kullanarak ikinci bir web sitesinin nasıl yapılandırılacağı ve yapılandırmanın nasıl testılacağı açıklanır.

Önkoşullar

Bu bölüm için aşağıdaki öğelerin ayarlanmış olması gerekir:

  • Nginx otomatik olarak çalışır ve 80 numaralı bağlantı noktasında gönderilen istekleri dinler.
  • Nginx ters ara sunucu olarak yapılandırılır ve tüm gelen HTTP isteklerini 5000 numaralı bağlantı noktasında dinleyen ilk ASP.NET Core uygulamasına yönlendirir (bu bağlantı noktasında çalışan bir arka uç uygulaması olarak herhangi bir ASP.NET Core uygulamasını kullanabilirsiniz.)
  • İlk ASP.NET Core uygulaması her zaman çalışacak şekilde yapılandırılmıştır (işlem durursa veya sunucu yeniden başlatılırsa, ASP.NET Core uygulaması otomatik olarak başlatılmalıdır.)
  • Linux yerel güvenlik duvarı etkinleştirildi ve SSH ve HTTP gelen trafiğine izin verecek şekilde yapılandırıldı.
  • 5001 numaralı bağlantı noktasında dinleyecek şekilde yapılandırılmış ikinci bir ASP.NET Core uygulaması (bu uygulama da her zaman çalışacak şekilde yapılandırılmalıdır ve BuggyAmb örnek ASP.NET Core uygulaması kurulumdaki ikinci uygulama olarak yapılandırılmalıdır.)

Bu bölümün hedefi

Şu anda Nginx'te yapılandırılmış bir site vardır. 80 numaralı bağlantı noktasındaN Nginx'e ulaşan tüm istekler bu siteye yönlendirilir. Bu kurulumda ana bilgisayar adı önemli değildir. IP adresini veya IP adresine çözümlenen herhangi bir ana bilgisayar adını kullanın. Tüm istekler varsayılan web sitesine yönlendirilir. Bu varsayılan web sitesi ters proxy işlevi görür ve istekleri bağlantı noktası 5000'de dinleyen ilk ASP.NET Core uygulamasına yönlendirir.

Öğreticinin bu bölümünde Nginx'te ikinci bir web sitesi oluşturacaksınız. Bu web sitesi aynı zamanda ters ara sunucu görevi görür ve belirli bir ana bilgisayar adına sahip tüm istekler, bağlantı noktası 5001'de dinleyen ikinci ASP.NET Core uygulamasına yönlendirilir.

Ayrıca web sitesini belirli bir ana bilgisayar adını dinleyecek şekilde yapılandıracaksınız. Sonunda, erişilebilir ve şu ana bilgisayar adlarına sahip iki site olacaktır:

  • İlk web sitesi: http://myfirstwebsite trafiği ilk ASP.NET Core tanıtım uygulamasına yönlendirecek.
  • İkinci web sitesi: http://buggyamb trafiği ikinci ASP.NET Core örnek buggy uygulamasına yönlendirecek.

hem buggyamb istemci Windows hem de Linux bilgisayarlarınızın hosts dosyasına ve ekleyinmyfirstwebsite. Bu şekilde, yeni yapılandırmayı test etmek için bu URL'leri kullanabilirsiniz.

Bu konak adları yalnızca tanıtım amaçlıdır. Bu bölümdeki alıştırmalarda tutarlı olarak aynı konak adlarını kullandığınız sürece tercih ettiğiniz diğer konak adlarını kullanabilirsiniz.

Nginx'te konak adı kullanarak ikinci bir web yapılandırma

Hatırlarsanız, Nginx'in site yapılandırmalarını yüklediği dizinlerden biri /etc/nginx/sites-enabled/ şeklindedir. Şu anda bir varsayılan yapılandırma dosyası vardır. Dosya aşağıdaki ekran görüntüsüne benzer.

Cat komutunun ekran görüntüsü.

Not

Vurgulanan bölümlere dikkat edin çünkü bunları değiştirmeniz gerekir:

  • server_name: İstediğiniz konak adını burada ayarlayabilirsiniz. Şu anda bu değeriyle _yapılandırılmıştır. Bu, herhangi bir konak adı anlamına gelir.
  • proxy_pass: Bu, belirli bir URL üzerinde çalışan ve dinleyen gerçek ASP.NET Core uygulamasıdır. İstekler bu URL'ye yönlendirilir.

İlk web sitesini ana bilgisayar üst bilgisini http://myfirstwebsitedinleyecek şekilde yapılandırın. Bunu başarmak için aşağıdaki ekran görüntüsünde gösterildiği gibi /etc/nginx/sites-enabled/default yapılandırma dosyasında öğesini değiştirinserver_name. Bu dosyayı düzenlemek için komutunu kullanmanız sudo vi /etc/nginx/sites-enabled/default gerekir.

Cat varsayılan komutunun ekran görüntüsü.

İkinci web sitesi için ikinci bir Nginx yapılandırma dosyası oluşturun. Aynı yapılandırma dizininde bu dosyanın bir kopyasını oluşturmak için bu dosyayı şablon olarak kullanın. Dosyayı buggyamb.config olarak adlandırın.

sudo cp /etc/nginx/sites-enabled/default /etc/nginx/sites-enabled/buggyamb.config

komutunu çalıştırarak sudo vi /etc/nginx/sites-enabled/buggyamb.config yapılandırma dosyasını düzenleyin. /etc/nginx/sites-enabled/buggyamb.config dosyasının son sürümü aşağıdadır.

sudo komutunun ekran görüntüsü.

Sonuçta elde edilen kurulumun Nginx site yapılandırma dizininde iki yapılandırma dosyası olmalıdır: buggyamb.config ve default. Yapılandırma değişikliklerini yeniden yüklemek için Nginx'i ayarlamanız gerekir. Ancak, değişiklik yaptığınızda hata olmadığından emin olmak için önce yeni yapılandırmayı test etmelisiniz. sudo nginx -t komutunu çalıştırın ve yapılandırmanın doğru olduğunu doğrulayın. Ardından komutunu çalıştırarak sudo nginx -s reload yapılandırmayı yeniden yükleyin ve yeni değişiklikleri okuyun.

sudo nginx komutunun ekran görüntüsü.

Yeni yapılandırmayı test etme

Doğru IP adreslerine myfirstwebsite çözümlenmesi için ve buggyamb ana bilgisayar adlarını ayarlayın. Sitelere Linux bilgisayardan eriştiğiniz zaman, bu konak adları 127.0.0.1'e ve istemci Windows bilgisayarı gibi dış istemciler için çözümlenmelidir. Konak adları Linux sanal makinenizin genel IP adresine çözümlenmelidir. Bu IP adresini Azure portalından alabilirsiniz.

Not

Konak eşlemeleri Linux'taki /etc/hosts dosyasında ve Windows'daki C:\WINDOWS\System32\drivers\etc\hosts dosyasında depolanır.

Bu, Linux konakları dosyasının içeriğidir.

Kedi konak komutunun ekran görüntüsü.

ve komutlarını çalıştırarak curl myfirstwebsite curl buggyamb iki sitenin her birine istekte bulunabilirsiniz.

Çıktı aşağıdadır curl myfirstwebsite . Yanıt, başlangıçta dağıtılan ve 5000 numaralı bağlantı noktasında dinleyen tanıtım ASP.NET çekirdek uygulamasının giriş sayfasından HTML içeriğini doğru şekilde görüntülüyor gibi görünüyor.

curl first web komutunun ekran görüntüsü.

Çıkış da curl buggyamb burada. Bu, 5001 numaralı bağlantı noktasında çalışan BuggyAmb örnek uygulamasının giriş sayfasından HTML içeriğini görüntüler.

curl buggyamb komutunun ekran görüntüsü.

Bir tarayıcı kullanarak istemci bilgisayardan aynı URL'lere göz atabilmeniz gerekir. Konak dosyasını doğru yapılandırıyorsanız bu da işe yaramalıdır. Windows bilgisayarda çalışan bir tarayıcıdan adresine göz atarken http://buggaymb görüntülenen budur.

Hoş geldiniz sayfasının ekran görüntüsü.

Bu noktaya kadar aşağıdaki kuruluma sahip olursunuz:

  • İki web sitesi barındıran Nginx:

    • İlk web sitesi, konak üst bilgisini kullanarak myfirstwebsite istekleri dinler ve istekleri demo ASP.NET Core uygulamamıza yönlendirir. Bu uygulama 5000 numaralı bağlantı noktasını dinler.
    • İkinci web sitesi, ana bilgisayar üst bilgisi değerini buggyambkullanarak gelen HTTP trafiğini dinler ve istekleri ikinci ASP.NET Core örnek buggy uygulamasına yönlendirir. Bu uygulama 5001 numaralı bağlantı noktasını dinler.
  • her iki ASP.NET Core uygulaması da sunucu yeniden başlatıldığında otomatik olarak yeniden başlatılan hizmetler olarak çalışır veya uygulamalar yanıt vermeyi durdurur.

  • Linux yerel güvenlik duvarı etkinleştirilir ve SSH ve HTTP trafiğine izin verecek şekilde yapılandırılır.

Sorun giderme ipuçları

Bir siteye göz atarken HTTP 502 - Hatalı Ağ Geçidi hatası alabilirsiniz. "HTTP 502 - Hatalı Ağ Geçidi", Nginx'in arka uç ASP.NET Core uygulamasıyla iletişim kuramadığı anlamına gelir. Arka uç uygulaması çalışmıyorsa bu durum oluşur.

Bu durumda:

  • her iki ASP.NET Core uygulamasında da farklı bağlantı noktalarını dinlediğinden emin olun. Biri 5000 numaralı bağlantı noktasını, diğeri ise 5001 numaralı bağlantı noktasını dinlemelidir.
  • her iki ASP.NET Core uygulamalarının da otomatik olarak başlatacak şekilde yapılandırıldığından emin olun.
  • Komutları kullanan systemctl status ASP.NET Core uygulama hizmetlerinin durumunu denetleyin. Çalışmıyorsa, komutunu çalıştırarak sistem günlüklerini inceleyerek sorun giderin journalctl . Günlükleri filtrelemek için kullanın syslogIdentifier .
  • Hem .NET Core 3.1 hem de .NET 5.0'ın yüklü olduğundan emin olur. Sitelerden biri .NET Core 3.1, diğeri .NET 5.0 kullanıyor.

Sonraki adımlar

Bölüm 3.1 - Sorun giderme için hazırlanma