Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ş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.
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://myfirstwebsite
dinleyecek ş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.
İ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.
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.
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.
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.
Çı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.
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.
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
buggyamb
kullanarak 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.
- İlk web sitesi, konak üst bilgisini kullanarak
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 giderinjournalctl
. Günlükleri filtrelemek için kullanınsyslogIdentifier
. - 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.