Antipattern: Aynı ana makine takma adına ve bağlantı noktası numarasına sahip birden fazla sanal ana makine tanımlama

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Apigee Edge'de bir Yönlendirici gelen tüm API trafiğini yönetir. Yani tüm HTTP ve HTTPS Edge API proxy'sine yapılan istekler ilk olarak bir Uç Yönlendirici tarafından işlenir. Bu nedenle, API proxy'si isteği IP adresine ve Yönlendirici üzerindeki açık bağlantı noktasına yönlendirilmelidir.

Sanal ana makineler, tek bir sunucuda veya sunucu grubunda birden fazla alan adı barındırmanıza olanak tanır. Edge için sunucular uç Yönlendiricilere karşılık gelir. Yönlendiricide sanal ana makineler tanımlayarak şunları yapabilirsiniz: Birden fazla alana gönderilen istekleri işleme alabilir.

Uçtaki sanal ana makine, Yönlendirici bağlantı noktası ve ana makine takma adıyla birlikte bir protokol (HTTP veya HTTPS) tanımlar. Ana makine takma adı genellikle Yönlendirici'nin IP adresiyle eşlenen bir DNS alan adıdır.

Örneğin, aşağıdaki resimde iki sanal ana makine tanımına sahip bir Yönlendirici gösterilmektedir:

Bu örnekte iki sanal ana makine tanımı verilmiştir. Biri domainName1 alanı, diğeri ise domainName2 alanındaki HTTP isteklerini işler.

API proxy'sine yapılan bir istekte Yönlendirici, gelen istemcinin Ana makine başlığı ile bağlantı noktası numarasını karşılaştırır sanal ana makineler tarafından tanımlanan ana makine takma adları listesini, sanal ana makine isteği işler.

Sanal ana makinelere yönelik örnek yapılandırma aşağıda gösterilmiştir:

örnek vhost yapılandırması

Antipattern

Aynı/farklı bir kuruluşta aynı ana makine takma adına ve bağlantı noktası numarasına sahip birden fazla sanal ana makine tanımlama herhangi bir kurumdaki ortamlarda veya kurumlar arasında ve beklenmedik hatalara/davranışlara neden olabilir.

Aynı ana makine takma adına sahip birden fazla sanal ana makineye sahip olmanın etkilerini açıklamak için bir örnek kullanalım.

sandbox and secure tanımlanmış iki sanal ana makine olduğunu düşünün aynı barındırıcı takma adıyla (ör. Bir ortamda api.company.abc.com:

aynı takma ada sahip sanal makineler

Yukarıdaki kurulumla, aşağıdaki bölümlerde açıklanan iki senaryo olabilir.

1. Senaryo : Bir API Proxy'si, yalnızca bir sanal makineden yalnızca birine korumalı alan barındırır

<ProxyEndpoint name="default">
  ...
  <HTTPProxyConnection>
    <BasePath>/demo</BasePath>
    <VirtualHost>sandbox</VirtualHost>
  </HTTPProxyConnection>
  ...
</ProxyEndpoint>

Bu senaryoda, istemci uygulamaları ana makine takma adı api.company.abc.com ise aralıklı olarak şu mesajla 404 hataları alır:

Unable to identify proxy for host: secure 

Bunun nedeni, Yönlendiricinin istekleri hem sandbox hem de secure hedefine göndermesidir sanal ana makineler. İstekler sandbox sanal ana makinesine yönlendirildiğinde, istemci uygulamaları başarılı bir yanıt alır. Ancak istekler secure sanal ana makinesine yönlendirildiğinde, API Proxy'si, aşağıdaki tarayıcılarda istekleri kabul edecek şekilde yapılandırılmadığından istemci uygulamaları 404 hatası alır: secure sanal ana makinesi.

2. Senaryo : Bir API Proxy'si hem sanal ana makinelerin korumalı alanına hem de güvenli alana yapılan istekleri kabul edecek şekilde yapılandırılır

<ProxyEndpoint name="default">
  ...
  <HTTPProxyConnection>
    <BasePath>/demo</BasePath>
    <VirtualHost>sandbox</VirtualHost>
    <VirtualHost>secure</VirtualHost>
  </HTTPProxyConnection>
  ...
</ProxyEndpoint>

Bu senaryoda, istemci uygulamaları ana makine takma adı api.company.abc.com ise proxy mantığına göre geçerli bir yanıt alır.

Ancak, API istekleri şuraya yönlendirildiğinden bu durum yanlış verilerin Analytics'te depolanmasına neden olur: hem de asıl isteklerin yalnızca bir sanal ana makineye gönderilmesi amaçlanıyordu.

Bu işlem, günlük kaydı bilgilerini ve sanal ana makinelere dayalı diğer verileri de etkileyebilir.

Etki

  1. API istekleri, API Proxy'sinin olmayabileceği bir sanal ana makineye yönlendirilebilirken 404 hataları yapılandırıldı.
  2. API istekleri yalnızca belirli bir sanal ana makine için isteklerde bulunulduğunda aynı ana makine takma adı.

En İyi Uygulama

  • Aynı ortamda aynı ana makine takma adına ve bağlantı noktası numarasına sahip birden fazla sanal ana makine tanımlamayın. ya da kurumun farklı ortamlarının bir araya gelmesiyle ortaya çıkar.
  • Birden fazla sanal ana makine tanımlamanız gerekiyorsa aşağıda gösterildiği gibi sanal ana makineler:

    iki sanal makine

Daha fazla bilgi