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.
- Azure Spring Apps yönetilen kapsayıcı kayıt defteri
- Kullanıcı tarafından yönetilen kapsayıcı kayıt defteri
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.
- Azure Spring Apps yönetilen kapsayıcı kayıt defteri
- Kullanıcı tarafından yönetilen kapsayıcı kayıt defteri
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.
- Azure Spring Apps yönetilen kapsayıcı kayıt defteri
- Kullanıcı tarafından yönetilen kapsayıcı kayıt defteri
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:
- Ü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 isebuild
. - 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. - Derleme betiğinin adına ayarlayın
BP_NODE_RUN_SCRIPTS
. - Derleme çıktı dizinine ayarlayın
BP_WEB_SERVER_ROOT
.
- Üretime
- 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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin