Linux'ta Apache Adı Tabanlı ve IP Tabanlı Sanal Konaklar Oluşturun


Sanal Barındırma, birden fazla web sitesinin veya alan adının tek bir sunucuda barındırıldığı ve bir işletmenin veya kuruluşun kaynak yükünü ve işletme maliyetlerini azaltmak için yapılan bir kavramdır.

Apache web sunucusu, sistem yöneticilerinin her web sitesi için sanal ana bilgisayarları kolayca yapılandırmasına olanak tanıyarak birden fazla siteyi barındırmayı basitleştirir. Sanal barındırma IP tabanlı veya isme dayalı olabilir.

Bu eğiticide, Fedora, CentOS Stream, Rocky Linux ve gibi RHEL tabanlı dağıtımlarda sanal barındırma kurulumunun nasıl yapılacağını araştırıyoruz. Strong>Alma Linux, Linux'ta hem IP tabanlı hem de isme dayalı sanal konakları kullanır.

Paylaşılan Web Barındırma ve Bayi Web Barındırma kavramları temel olarak Apache'nin bu özelliğine dayanmaktadır.

Linux'ta Apache Sanal Barındırma Türleri

Apache'te iki tür Sanal Barındırma mevcuttur.

İsme Dayalı Sanal Barındırma

Bu barındırma türünde, yalnızca tek bir IP adresi kullanılarak birden fazla alan adı veya web sitesi tek bir sunucuda barındırılabilir. Basitçe söylemek gerekirse, tüm alan adları tek bir IP adresini paylaşacaktır. Bu, yapılandırması en kolay sanal barındırma türüdür çünkü tek yapmanız gereken, etki alanı adlarını IP adresiyle eşlemek ve ardından her etki alanı adı için Apache sanal ana bilgisayarlarını yapılandırmaktır.

IP Tabanlı Sanal Barındırma

IP tabanlı sanal barındırma, her etki alanına benzersiz bir IP adresinin atandığı yerdir. Bu IP adresleri sunucuya birden fazla NIC kartı veya tek bir NIC kartı kullanılarak eklenebilir.

Test Ortamı

  • İşletim SistemiFedora 34
  • UygulamaApache Web Sunucusu
  • IP Adresi192.168.2.105
  • IP Adresi192.168.2.106
  • Alanwww.alanadim1.com
  • Alanwww.alanadim2.com

IP Tabanlı ve İsme Dayalı Apache Sanal Konakları Nasıl Kurulur

Başlamadan önce, gösterildiği gibi dnf komutunu kullanarak Apache web sunucusunun sisteminize kurulu olduğundan emin olun.

sudo dnf install httpd -y

İsme Dayalı Sanal Barındırma Kurulumu

İsme dayalı sanal barındırma kurulumunun ilk adımı, /etc/hosts dosyasında alan adı çözümlemesini ayarlamaktır. Bu nedenle, ana bilgisayarın IP adresine işaret eden alan adı girişlerini eklemek için aşağıdaki komutları root kullanıcı olarak çalıştırın.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.105 www.mydomain2.com' >> /etc/hosts

Bir sonraki adım, web sitesi dosyalarını içerecek bir dizin oluşturmaktır. Bu nedenle Apache konfigürasyonunda /var/www/html klasörü olan Belge Kökünde sanal konaklar için iki dizin oluşturacağız.

sudo mkdir /var/www/html/mydomain1.com/
sudo mkdir /var/www/html/mydomain2.com/

Bir sonraki adım, Apache'ye tüm alan adları için gelen Apache web sunucusu isteklerini dinlemesi talimatını verecek sanal ana bilgisayar dosyasını değiştirmektir. Bu nedenle, tercih ettiğiniz metin düzenleyiciyi kullanarak Apache yapılandırma dosyasını açın.

sudo vim /etc/httpd/conf/httpd.conf

İki sanal konak için aşağıdaki kod bloklarını ekleyin.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.105:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

Değişiklikleri kaydedin ve çıkın. Daha sonra sözdiziminin uygun olup olmadığını ve herhangi bir hata olup olmadığını kontrol edin.

httpd -t

Daha sonra, her alan adı için HTML test sayfaları oluşturacağız ve tarayıcıda her şeyin düzgün çalışıp çalışmadığını doğrulamanın bir yolu olarak bazı içerikler ekleyeceğiz.

alanadim1.com için

alanadim1.com dizini altında bir index.html dosyası oluşturun.

sudo vim /var/www/html/mydomain1.com/index.html 

Aşağıdaki satırları yapıştırın.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain1.com.</h1>
  </body>
</html>

Değişiklikleri kaydedin ve dosyadan çıkın.

alanadim2.com için

alanadim2.com dizini altında bir index.html dosyası oluşturun.

sudo vim /var/www/html/mydomain2.com/index.html 

Aşağıdaki satırları yapıştırın.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain2.com.</h1>
  </body>
</html>

Değişiklikleri kaydedin ve dosyadan çıkın.

Şimdi Apache web sunucusunu başlatın ve çalıştığını doğrulayın.

sudo systemctl start httpd
sudo systemctl status httpd

Etkinleştirilmiş bir güvenlik duvarınız varsa HTTP ve HTTPS (gerektiğinde) trafiğine izin verin.

sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --add-service=https --zone=public --permanent
sudo firewall-cmd --reload

Şimdi etki alanlarını bir tarayıcıdan test edin.

IP Tabanlı Sanal Hosting Linux Kurulumu

IP tabanlı sanal barındırma, adından da anlaşılacağı gibi, Linux sunucunuza atanan birden fazla IP adresini içerir. Çoğu durumda, birden fazla IP adresi sağlamak için sisteminize iki veya daha fazla NIC kartı eklenir.

IP tabanlı sanal barındırmanın amacı, her etki alanına başka hiçbir etki alanı tarafından kullanılmayacak benzersiz bir IP adresi atamaktır.

Bu, SSL sertifikasıyla (mod_ssl) şifrelenmiş veya farklı bağlantı noktalarında çalışan web siteleriniz olduğu durumlar için idealdir. Kurulumumuzda iki NIC adaptörümüz var.

Sisteminizde IP yapılandırmasını görüntülemek için ifconfig veya ip a komutunu çalıştırın.

ifconfig
OR
ip addr

Sunucumuzun her biri bir NIC'ye atanmış iki IP adresi vardır. 192.168.2.106 IP'si ens160'a, 192.168.2.105 IP'si de ens224'e atanmıştır.

Bir kez daha httpd.conf dosyasını yapılandıralım.

sudo vim /etc/httpd/conf/httpd.conf

Gösterildiği gibi her iki etki alanı için sanal ana bilgisayarlar oluşturun. Her IP adresinin ilgili sanal ana bilgisayar yapılandırmasına atandığından emin olun.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.106:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

Yapılandırma dosyasını kaydedin ve çıkın. Daha sonra /etc/hosts dosyasını gösterildiği gibi değiştirin.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.106 www.mydomain2.com'>> /etc/hosts

Girişleri onaylayın:

cat /etc/hosts

192.168.2.105 www.mydomain1.com
192.168.2.106 www.mydomain2.com

Daha sonra değişikliklerin geçerli olması için Apache web sunucusunu yeniden başlatın.

sudo systemctl restart httpd

Son olarak, gösterildiği gibi URL'lere erişerek IP tabanlı Sanal barındırma kurulumunuzu test edin.

http://192.168.2.105
http://192.168.2.106

Bu test, IP tabanlı sanal barındırmanın beklendiği gibi çalıştığını doğrular!

Çözüm

Bu derste bu kadar. Her iki sanal barındırma türünü de çok fazla sorun yaşamadan sorunsuz bir şekilde yapılandırabileceğinizi umuyoruz. Bu kılavuz hakkındaki geri bildirimleriniz çok takdir edilmektedir.