Aracılığıyla paylaş


Web statik dosyalarını dağıtma

Not

Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.

Bu makale şunlar için geçerlidir:❌ Temel/Standart ✔️ Kurumsal

Bu makalede, Tanzu Web Sunucuları derleme paketini kullanarak statik dosyalarınızı bir Azure Spring Apps Kurumsal planı örneğine dağıtma adımları gösterilmektedir. Bu yaklaşım yalnızca HTML, CSS veya seçtiğiniz JavaScript çerçevesiyle oluşturulmuş ön uç uygulamaları gibi statik dosyaları tutmak için olan uygulamalarınız varsa kullanışlıdır. Bu varlıkları sunmak için bu uygulamaları otomatik olarak yapılandırılmış bir web sunucusuyla (HTTPD ve NGINX) doğrudan dağıtabilirsiniz.

Önkoşullar

  • Önceden sağlanmış bir Azure Spring Apps Kurumsal plan örneği. Daha fazla bilgi için bkz . Hızlı Başlangıç: Kurumsal planı kullanarak uygulamaları derleme ve Azure Spring Apps'e dağıtma.
  • Azure Spring Apps'te çalışan bir veya daha fazla uygulama.
  • Azure CLI, sürüm 2.45.0 veya üzeri.
  • Statik dosyalarınız veya dinamik ön uç uygulamanız ( örneğin, bir React uygulaması).

Statik dosyalarınızı dağıtma

Not

Bu makale, dağıtım yapılandırmalarını açıklamaya ve web statik dosya dağıtımına özgü sorun giderme işlemlerine odaklanır. Azure Springs Apps Kurumsal planının genel derleme ve dağıtım senaryolarını anlamak için, Tanzu Derleme Hizmetini Kullanma ve Çok teknolojili uygulamaları dağıtma'nın İsteğe bağlı derleme hizmeti bölümüne bakın.

Statik dosyaları NGINX veya HTTPD web sunucularını kullanarak Azure Spring Apps'e aşağıdaki yollarla dağıtabilirsiniz:

  • Statik dosyaları doğrudan dağıtabilirsiniz. Azure Spring Apps, statik dosyaları sunmak için belirtilen web sunucusunu otomatik olarak yapılandırır.
  • Ön uç uygulamanızı istediğiniz JavaScript çerçevesinde oluşturabilir ve ardından dinamik ön uç uygulamanızı kaynak koddan dağıtabilirsiniz. Azure Spring Apps, uygulamanızı statik içerik olarak oluşturur ve statik dosyaları sunmak için yapılandırılmış web sunucunuzu kullanır.

Web sunucusunu özelleştirmek için bir sunucu yapılandırma dosyası da oluşturabilirsiniz.

Dağıtım örnekleri

Bu bölümdeki Azure CLI örnekleri, iki kapsayıcı kayıt defteri senaryosu için statik dosyalar oluşturma ve dağıtmayı gösterir:

  • Azure Spring Apps yönetilen kapsayıcı kayıt defteri.
  • Kullanıcı tarafından yönetilen kapsayıcı kayıt defteri.

Statik dosyaları doğrudan derleme ve dağıtma

Bu örnek, statik dosyaları otomatik olarak oluşturulan varsayılan sunucu yapılandırma dosyasını kullanarak doğrudan dağıtır.

Aşağıdaki komut statik bir dosya dağıtır:

az spring app deploy
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code> \
    --build-env BP_WEB_SERVER=nginx

Ortam değişkenlerini kullanma hakkında bilgi için Otomatik olarak oluşturulan sunucu yapılandırma dosyası yapılandırma bölümüne bakın.

Ön uç uygulamanızı statik içerik olarak derleme ve dağıtma

Bu örnek, kaynak koddan dinamik bir ön uç uygulaması dağıtır.

Aşağıdaki komut bir uygulama dağıtır:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code> \
    --build-env BP_WEB_SERVER=nginx BP_NODE_RUN_SCRIPTS=build BP_WEB_SERVER_ROOT=build

Özelleştirilmiş bir yapılandırma dosyası kullanarak statik dosyalar oluşturma ve dağıtma

Bu örnek, özelleştirilmiş bir sunucu yapılandırma dosyası kullanarak statik dosyaları dağıtır.

Aşağıdaki komut bir uygulama dağıtır:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code>

Daha fazla bilgi için bu makalenin Özelleştirilmiş sunucu yapılandırma dosyası kullanma bölümüne bakın.

Örnek kod

Not

Örnek kod Paketo açık kaynak topluluğu tarafından korunur.

Paketo derleme paketleri örnekleri, aşağıdaki kullanım örnekleri de dahil olmak üzere birkaç farklı uygulama türü için yaygın kullanım örneklerini gösterir:

  • HTTPD veya NGINX'i seçmek için kullanarak BP_WEB_SERVER varsayılan sunucu yapılandırma dosyasıyla statik dosyalar sunma.
  • Node Paket Yöneticisi kullanarak bir web sunucusunun hizmet verebileceği statik dosyalara React uygulaması oluşturun. Aşağıdaki adımları kullanın:
    1. Üretime scripts hazır statik varlıklarınızı oluşturan package.json dosyasının özelliği altında bir betik tanımlayın. React için ise build.
    2. Derleme betiği çalıştırıldıktan sonra statik varlıkların nerede depolandığını öğrenin. React için statik varlıklar varsayılan olarak içinde ./build depolanır.
    3. Derleme betiğinin adına ayarlayın BP_NODE_RUN_SCRIPTS .
    4. Derleme çıktı dizinine ayarlayın BP_WEB_SERVER_ROOT .
  • HTTPD veya NGINX kullanarak statik dosyaları kendi sunucu yapılandırma dosyanızla sunma.

Otomatik olarak oluşturulan sunucu yapılandırma dosyasını yapılandırma

Otomatik olarak oluşturulan sunucu yapılandırma dosyasını değiştirmek için ortam değişkenlerini kullanabilirsiniz. Aşağıdaki tabloda desteklenen ortam değişkenleri gösterilmektedir.

Ortam değişkeni Desteklenen Değer Açıklama
BP_WEB_SERVER nginx veya httpd Nginx için nginx veya Apache HTTP sunucusu için httpd web sunucusu türünü belirtir. Otomatik olarak oluşturulan sunucu yapılandırma dosyası kullanılırken gereklidir.
BP_WEB_SERVER_ROOT Mutlak bir dosya yolu veya /workspace ile ilgili bir dosya yolu. Statik dosyalar için kök dizini ayarlar. Varsayılan değer: public.
BP_WEB_SERVER_ENABLE_PUSH_STATE true veya false Uygulamanız için anında iletme durumu yönlendirmeyi etkinleştirir. İstenen rotadan bağımsız olarak, index.html her zaman sunulur. Tek sayfalı web uygulamaları için kullanışlıdır.
BP_WEB_SERVER_FORCE_HTTPS true veya false Tüm istekleri HTTPS protokolünü kullanacak şekilde yeniden yönlendirerek sunucu bağlantıları için HTTPS uygular.

Aşağıdaki ortam değişkenleri desteklenmez.

  • BP_LIVE_RELOAD_ENABLED
  • BP_NGINX_VERSION
  • BP_HTTPD_VERSION

Özelleştirilmiş sunucu yapılandırma dosyası kullanma

Özelleştirilmiş bir sunucu yapılandırma dosyası kullanarak web sunucusunu yapılandırabilirsiniz. Aşağıdaki tabloda yapılandırma dosyası yolu gösterilmektedir:

Web sunucusu Varsayılan yapılandırma dosyası yolu Sunucu yapılandırma dosya yolunu özelleştirme
nginx kaynak kodunuzun kök yolu altında nginx.conf . Yapılandırma dosyası adını belirtmek için ortam değişkenini BP_NGINX_CONF_LOCATION kullanın. Dosyayı kaynak kodunuzun kök yolunun altına yerleştirin.
httpd kaynak kodunuzun kök yolu altında httpd.conf . Desteklenmiyor.

Yapılandırma dosyanız aşağıdaki tabloda açıklanan kısıtlamalara uygun olmalıdır.

Yapılandırma Açıklama Nginx Yapılandırması Httpd Yapılandırması
Dinleme bağlantı noktası Web sunucusunun 8080 numaralı bağlantı noktasını dinlemesi gerekir. Hizmet, TCP üzerindeki bağlantı noktasını hazır olup olmadığını ve canlı olup olmadığını denetler. Yapılandırma dosyasında şablonlu değişkeni PORT kullanmanız gerekir. Web sunucusu başlatıldığında uygun bağlantı noktası numarası eklenir. listen {{PORT}} Listen "${PORT}"
Günlük yolu Konsolun yapılandırma günlüğü yolu. access_log /dev/stdout, error_log stderr ErrorLog /proc/self/fd/2
Yazma iznine sahip dosya yolu Web sunucusuna /tmp dizinine yazma izni verilir. Tam yolu yapılandırmak için /tmp dizini altında yazma izni gerekir. Örneğin: client_body_temp_path /tmp/client_body_temp
İstemci isteğinin kabul edilen gövde boyutu üst sınırı Web sunucusu ağ geçidinin arkasındadır. İstemci isteğinin kabul edilen gövde boyutu üst sınırı ağ geçidinde 500 m olarak ayarlanır ve web sunucusunun değeri 500 m'den az olmalıdır. client_max_body_size 500 m'den az olmalıdır. LimitRequestBody 500 m'den az olmalıdır.

Derleme paketi bağlamaları

Statik dosyaların Azure Spring Apps Enterprise planına dağıtılması Dynatrace derleme paketi bağlamasını destekler. htpasswd Derleme paketi bağlaması desteklenmez.

Daha fazla bilgi için bkz . APM tümleştirmesi ve CA sertifikalarını yapılandırma.

Yaygın derleme ve dağıtım hataları

Azure Spring Apps Enterprise örneğine statik dosya dağıtımınız aşağıdaki yaygın derleme hatalarını oluşturabilir:

  • ERROR: No buildpack groups passed detection.
  • ERROR: Please check that you're running against the correct path.
  • ERROR: failed to detect: no buildpacks participating

Bu hataların kök nedeni, web sunucusu türünün belirtilmemiş olmasıdır. Bu hataları çözmek için ortam değişkenini BP_WEB_SERVER nginx veya httpd olarak ayarlayın.

Aşağıdaki tabloda, Azure Spring Apps Enterprise'a statik dosyalar dağıttığınızda sık karşılaşılan dağıtım hataları açıklanmaktadır.

Hata İletisi Kök neden Çözüm
112404: Exit code 0: purposely stopped, please refer to https://aka.ms/exitcode Web sunucusu başlatılamadı. Yapılandırma hatası olup olmadığını görmek için sunucu yapılandırma dosyanızı doğrulayın. Ardından, yapılandırma dosyanızın Özelleştirilmiş sunucu yapılandırma dosyası kullanma bölümünde açıklanan kısıtlamalara uygun olup olmadığını denetleyin.
mkdir() "/var/client_body_temp" failed (13: Permission denied) Web sunucusunun belirtilen yolda yazma izni yok. /tmp dizininin altındaki yolu yapılandırın; örneğin: /tmp/client_body_temp.

Sonraki adımlar