deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

AxonASP, Classic ASP'yi Apache FastCGI ile Linux'a taşıyor — Windows Server gerekmiyor

AxonASP, açık kaynaklı bir sunucu olarak Classic ASP kodunu Linux üzerinde, Apache'nin arkasında bir FastCGI process manager aracılığıyla yerel olarak çalıştırıyor ve eski uygulamaların modern stack'lerle aynı sunucuyu paylaşmasını sağlıyor.

AxonASP, Classic ASP'yi Apache FastCGI ile Linux'a taşıyor — Windows Server gerekmiyor

Windows sunucusu olmadan Classic ASP

Halihazırda Classic ASP uygulamalarını sürdüren ekipler, işlettikleri her şey başka bir ortamda Linux üzerinde çalışsa bile genellikle ayrı bir Windows ve IIS ortamına ihtiyaç duyuyor. Aracın geliştiricisi Lucas Guimarães'in dev.to'daki yazısına göre AxonASP bu gereksinimi ortadan kaldırıyor: Classic ASP kodunu Linux üzerinde yerel olarak çalıştıran açık kaynaklı, çapraz platform bir sunucu. Brezilya'da yaşayan Guimarães, projeyi ondan fazla aktif katılımcıyla birlikte geliştirmiş; yazıda aracın Apache'nin arkasına nasıl dağıtılacağı adım adım anlatılıyor.

ASP için bir FastCGI process manager

Kurulumun kalbi, adı ve tasarımı PHP'nin PHP-FPM'sini andıran bir FastCGI process manager olan AxonASP FPM. Root olarak çalışan bir manager process her uygulama için worker process'leri başlatıyor; her worker'ın izinleri uygulama başına tanımlanan pool yapılandırma dosyasından geliyor.

Bir pool dosyası; site adını, worker'ların çalıştığı Linux UID ve GID değerlerini, pool'un açtığı Unix socket'i, uygulama yolunu, bir bellek üst sınırını (yazıdaki örnekte 256 MB), maksimum yeniden başlatma sayısını ve geçici dizini tanımlıyor. Yazı, UID ve GID değerlerinin uygulama dizininin sahibi olan hesapla eşleşmesi gerektiğini vurguluyor; pool başına yapılan bu ayrıcalık ayrımı, yaklaşımı paylaşımlı makinelerde uygulanabilir kılan şey.

Debian veya Ubuntu'ya kurulum bir paketle yapılıyor (yazı sırasında sürüm 2.3.18); paket binary'leri, FPM manager'ı ve varsayılan yapılandırmayı /opt/axonasp altına kuruyor. Servis daha sonra systemctl ile etkinleştirilip başlatılıyor.

Apache'yi bağlamak

Web sunucusu tarafında Apache'nin proxy ve proxy_fcgi modüllerinin etkinleştirilmesi gerekiyor. Virtual host içindeki bir ProxyPassMatch direktifi, .asp ile biten istekleri uygulamanın FPM pool'unun oluşturduğu Unix socket'ine yönlendiriyor; Apache, DOCUMENT_ROOT ve SCRIPT_NAME gibi alışılmış FastCGI ortam değişkenlerini de iletiyor, böylece uygulama içindeki yol çözümlemesi beklendiği gibi çalışıyor. Apache yeniden başlatıldıktan sonra .asp dosyaları Linux sunucudan sunuluyor.

Projenin iddiaları

Yazı, ASP yürütmesini FastCGI üzerinden yönlendirmenin üç operasyonel faydasını sıralıyor:

  • Konsolidasyon: Eski bir ASP uygulaması, Go veya PHP ile yazılmış modern servislerle aynı Linux sunucusunu, zaten mevcut olan bir Apache kurulumu altında paylaşabilir.
  • Kiracı izolasyonu: Her pool kendi UID ve GID değerine geçiş yaptığından bir uygulama başka bir uygulamanın dosyalarına veya belleğine erişemez.
  • Çöküş ve bellek yönetimi: FPM, pool başına bellek limitlerini cgroups aracılığıyla zorunlu kılıyor ve başarısız olan worker'ları otomatik olarak yeniden başlatıyor.

cPanel gibi paylaşımlı hosting platformları hedef senaryo olarak gösteriliyor; çünkü pool'lar her kiracıya makinenin izole bir dilimini veriyor.

Neden önemli

Classic ASP 1990'larda tanıtıldı ve daha sonra ASP.NET'in yerini bıraktı; ancak bunun üzerine kurulmuş birçok iş sistemi halen hizmette. Sorumlu ekipler genellikle iki cazip olmayan seçenekle karşı karşıya: yalnızca yaşlanan tek bir uygulamayı barındırmak için ayrı bir Windows Server çalıştırmaya devam etmek ya da hâlâ çalışan kodu yeniden yazmak. AxonASP üçüncü bir yol öneriyor — uygulamayı Linux filosuna taşımak, kendi process pool'unda izole etmek ve sunucudaki diğer herhangi bir servis gibi yönetmek.

Dürüstçe belirtilmesi gereken bir uyarı var: bu iddialar, aracın geliştiricisi tarafından yazılan projenin kendi duyurusundan geliyor. Yazı, VBScript kapsamının ne kadar tamam olduğu ya da olgun Classic ASP uygulamalarının sıkça bel bağladığı Windows'a özgü bağımlılıkların nasıl ele alındığı konularını açıklamıyor; bu yüzden karmaşık bir kod tabanına sahip olanlar IIS sunucularını emekliye ayırmadan önce kapsamlı test yapmalı. Ancak daha basit siteler için, altyapı envanterinden bir Windows VM'sini silme ihtimali gerçek bir cazibe.

  • #open-source
  • #linux
  • #apache
  • #classic-asp
  • #legacy-code
  • #web-server

İlgili yazılar