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 Sistemi – Fedora 34
- Uygulama – Apache Web Sunucusu
- IP Adresi – 192.168.2.105
- IP Adresi – 192.168.2.106
- Alan – www.alanadim1.com
- Alan – www.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.