Web Sunucusu çalıştırmanın temelleri nelerdir?


26

Bu, Web Sunucusu Yönetiminin Başlaması ile ilgili önerilen Kanonik bir Soru .

Başlangıçta bir SysAd olduğunuzu, WebOps'ta yeni olduğunuzu veya çok az deneyimli Web Sunucusu SysAd desteğine sahip (veya şu anda bunu karşılayamayacağınız) küçük bir ekip olduğunu varsayarsak, işletmeniz için bir Web Sunucusu yapılandırmak ve güvenceye almak için ne yapmalısınız?


Bir sisteme sahip olmanın faydalarından iki kez bahsediyorsunuz, yani sistemli olmayan insanlara hitap ettiğiniz anlamına geliyor. Bunun ardından Sysads ve diğerleri için olan Sunucu Arızası için Soru ve Cevap alanınızı kapsam dışı bırakır. Belki de Süper Kullanıcı bunun için daha iyi bir evdir?
user9517

8
SSS bölümünü okuduğumda 'Sistem Yönetimi soruları soran teknik uzmanlar' olarak yorumlanıyor. Bu tür bir soruyu teknik (ama SysAd değil) insanlardan (çoğunlukla Geliştiricilerden) defalarca sorduğumu gördüm ve genellikle yardım etmek yerine sık sık yanıt veriyorlar. Bu soru, Nereden başlayacağınızla ilgili Canonical yanıtı ve neden ASAP'ta gerçek SysAd yardımını işe almaları gerektiği konusunda aday olarak sorulmaktadır. (Umarım bu soruyu bir daha asla cevaplamak zorunda
kalmazsınız

Yanıtlar:


32

Başlamadan Önce:

Kaliteli insanlara sahip olmak size para kazandıracak. Tıpkı iyi bir Avukat (muhtemelen küfür için NSFW) veya bir muhasebeci gibi, kaliteli bir SysAd'a sahip olmak, muhtemelen sadece masraflı hatalardan kaçınmanıza yardımcı olarak, paradan tasarruf etmenizi sağlayacaktır. Şimdi uzmanlık için ödeyecek paranız olmayabilir, ancak mümkün olan en kısa sürede bu yatırımı yapmanız gerekir.

Bu sorunun basit ve tekil bir cevabı yoktur. Bu soruyu soracağınız bir kişiyseniz, bu sorunun profesyonellerin yıllarca çalıştıkları ve pratik yaptıkları bir alanın özü olduğunu farketmelisiniz. Tabii ki, sizi Ruby-on-Rails ve bir RoR "Hello World" kurarken size bir yönlendirebiliriz. Bu 'soruyu cevaplar' olsa da, aslında size yardımcı olmazdı. Bu soru / cevap size gerçekten yardımcı olma çabasıdır.

Bilmen gerekir:

Web Sunucusu Yönetimi büyük bir konudur ve birçok disiplinle özdeşleştirilmiştir. Bunu iyi yapmak için temel bir TCP / IP, ana bilgisayar işletim sisteminiz, Web Sunucusu Uygulamanız ve bazı uygulama yığınlarını çalıştırma anlayışına ihtiyacınız olacak.

Okumaya hazır olun. Çok fazla .

İhtiyaçlarınızı belirleyin:

Gereksinimler

  • Düz, statik bir web sitesi mi (belki bazı Javascript efektleriyle) çalıştırıyorsunuz, veya
  • (daha büyük olasılıkla) bir web arayüzü olan bir uygulamayı mı çalıştırıyorsunuz?
  • Kalıcı verileriniz var mı? (Bir veritabanına ihtiyacınız var mı?)
  • Kullanıcı kimlik bilgilerini içeriyor mu? Güvenliğinin sağlanması için kullanıcı ile web sitesi arasındaki bağlantıya ihtiyacınız olması için başka bir neden var mı? (SSL)
  • Herhangi bir tür ödeme yapıyor musunuz? SSL gereksinimlerine ek olarak, araştırmanız gereken (bölgeye bağlı) ek düşünceler vardır. Bunlar, kullandığınız ödeme işlemcisine bağlı olarak da değişecektir.

Yığını tanımla:

Bunu nasıl yazıp çalıştıracaksın?

  • Platform (Windows, Linux, diğer Unix, vb.)
  • Uygulama gereksinimleri (Ruby / Rails, Python, Perl, PHP, .NET, vb.)
  • Veritabanı (...)
  • Önbelleğe alma? (Dürüst olmak gerekirse, şimdi bunun için endişelenmeyin; bunun bazı sorunları çözdüğünü ve başkalarını yaratabildiğini unutmayın. Bu bir performans sorunudur ve şu anda daha yeni başlamaya çalışıyorsunuz.)

Bu seçeneklerden bazıları diğerlerini bilgilendirecektir. Örneğin, bir .NET uygulaması çalıştırıyorsanız, muhtemelen MSSQL ve IIS kullanmak istersiniz; Ruby on Rails kullanıyorsanız, muhtemelen bir Linux sunucusu istiyorsunuz; vb...

Ürününüzü Tanıyın:

Artık yığınızın nasıl görüneceğine karar verdiğinize göre, bunu bilmeniz gerekir. Burası zamanınızın çoğunu harcamalısınız. "[Ürün] Yapılandır" veya "[Ürün] Yönetici Kılavuzu" nu aramanız size bol miktarda kaynak sağlamalıdır.

Örneğin, Ubuntu'da Apache kullanıyorsanız, kesinlikle okumalısınız:

Küme için benzer dokümanlar, makaleler, blog gönderileri arayın.

Çıplak minimumunu takın:

Apache için çok geniş bir modül dizisi var ancak PHP kullanmayacaksanız (örneğin) mod-php kurmayın.

Ayrıca burada Linux sunucusuysa bir GUI kurmaktan kaçınmanız gerektiği belirtilmelidir; GUI önemli miktarda sistem kaynağı kullanıyor.

Sitenin güvenliğini sağlama:

  • Çalışması için minimum izinleri sağlayın. Bu sadece dosya sistemi için değil aynı zamanda hizmetler ve işlemler için de geçerlidir.
  • Gereksiz servisler için sunucu portlarını devre dışı bırakın. (Yine, yalnızca minimum olanı yükleyin.)
  • Uygulama arabirimlerini iç ortamla sınırlandırın (örneğin, aynı sunucu üzerinde bir web uygulamasını çalıştırıyorsanız (Rails gibi), yalnızca localhost dinlemesini kısıtlayın)

Kapanışta:

Bu sadece bir siteyi kurmak ve çalıştırmak için yapmanız gerekenlerin başlangıcıdır. Bu, sunucu bakımı veya ölçeklendirme ile ilgili sorunların (projenizin başarılı olması durumunda) nasıl yönetileceği veya bilgili bir SysAd'ın sizin için çözeceği diğer sayısız konuya dokunmaya bile başlamaz.


Çıplak asgari seviyenin çalıştırılması çok önemlidir, ancak neyin / neyin kaldırılacağı / devre dışı bırakılacağı / korunacağı açık olmayabilir. Özel bir ağ üzerinde çalışan uygulama sunucularına yalnızca belirli istekleri ileten / vekalet eden, tamamen güvenlik duvarı olan bir makinenin herkese açık bir şekilde çalıştırılmasını önermek kabul edilebilir mi? Uygulamalarının kullandığı ortamla aynı olması gerekmediğinden bunun için bir distro / config önermek bile mümkün olacaktır.
Carlos Lima

1
Bu iyi bir başlangıç. Kapatmadığın bir şey tekrarlama yeteneği. Bir noktada mevcut kurulumun ötesinde büyüyeceksiniz. Ortamı kurma yönleriniz tekrarlanabilir mi? Daha da iyisi, otomatikler mi? Tüm kaynak paketleri kaydediyor musunuz, böylece çevreyi yeniden yaratabilirsiniz, yoksa dış depolara mı güveniyorsunuz? Yükseltme zamanı geldiğinde nasıl anlayacaksınız? Uygun metrikleri izliyor musunuz? Onları nasıl rapor ediyorsunuz?
toppledwagon

@toppledwagon Tüm bunlar iyi noktalardır, ancak 101 kursa hitap ediyordum. Bahsettiğiniz her şey (tutarlılık / config mgt, ölçekleme, izleme / ölçümler, vb.) Daha sonra geldiğimi hissediyorum. Ve dürüst olmak gerekirse, bu alanlara girmekten çok bir Sistem Pro'su almayı tavsiye ederim.
gWaldo

3
@toppledwagon Bu noktaya geldiğinizde bir sysadmin'e ihtiyacınız var. Veya en azından bir Hizmet olarak bir Sysadmin.
Michael Hampton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.