Ana içeriğe geç

⚙️ Debian 11 Üzerine Apache Web Sunucusu Kurulumu ve Yapılandırması

Bu rehberde, Debian 11 üzerinde Apache HTTP Sunucusu'nu kurmayı, güvenlik duvarını yapılandırmayı ve sanal host kullanarak birden fazla site barındırmayı öğreneceksiniz.


🧠 Teknik Özet (Aşama 1)

Ana Teknik Konu: Apache HTTP Sunucusu'nun Debian 11 işletim sistemine kurulumu ve yapılandırılması. Ayrıca, birden fazla web sitesini barındırabilmek için Sanal Host (Virtual Host) yapılandırması.

Problemi Çözüyor: Geliştiricilerin, Apache web sunucusunu Debian 11 üzerinde kurarak, güvenlik duvarını doğru şekilde yapılandırmalarını ve birden fazla siteyi tek bir sunucuda barındırabilmelerini sağlar.


Bu Rehberde Ne Öğreneceksiniz?

  • Debian 11 üzerine Apache HTTP Sunucusu'nun kurulumu.
  • UFW güvenlik duvarı ile HTTP trafiğine izin verme.
  • Apache'nin temel yönetim komutları: başlatma, durdurma, yeniden başlatma ve yeniden yükleme.
  • Sanal Host (Virtual Host) kullanarak birden fazla siteyi barındırma.
  • Apache'nin önemli yapılandırma dosya ve dizinlerini tanıma.

1. Apache Web Sunucusu Kurulumu (Debian 11)

1.1 Gereksinimler

  • Debian 11 Sanal Sunucu (Instance): Sudo yetkileri olan, root olmayan bir kullanıcı ve etkin bir güvenlik duvarı (UFW).

1.2 Apache Kurulumu

Apache, Debian'ın varsayılan yazılım depolarında mevcuttur. Standart paket yönetim araçlarıyla kurulum yapabiliriz.

1. Yerel paket dizinini güncelleyin:

sudo apt update

Bu komut, yerel paket indeksini günceller.

2. Apache2 paketini kurun:


sudo apt install apache2
  • Bu komut, Apache web sunucusunu ve gerekli tüm bağımlılıkları kurar.

2. Güvenlik Duvarı Ayarları

  • Apache'yi test etmeden önce, web sunucusu portlarına harici erişime izin vermek için güvenlik duvarı ayarlarını düzenlemeliyiz.

2.1 UFW uygulama profillerini listeleyin:


sudo ufw app list
  • Bu komut, Apache'nin kurulum sırasında UFW'ye eklediği hazır profilleri gösterir.

  • HTTP trafiğine izin veren WWW profilini etkinleştirin:


sudo ufw allow 'WWW'

Değişikliği kontrol edin:


sudo ufw status

3. Web Sunucusunu Kontrol Etme

1. Apache'nin durumu için systemctl komutunu kullanın:


sudo systemctl status apache2

3.1 Sunucunuzun genel IP adresini öğrenmek için:


hostname -I
  • Ya da curl komutunu kullanarak:

sudo apt install curl
curl -4 icanhazip.com

1. Tarayıcıya IP adresinizi girin:


http://sunucu_ip_adresiniz
  • Apache'nin varsayılan sayfasını görmelisiniz.

4. Apache Servis Yönetimi**

1. Web sunucusunu durdurmak için:


sudo systemctl stop apache2

2. Sunucuyu başlatmak için:


sudo systemctl start apache2

3. Servisi yeniden başlatmak için:


sudo systemctl restart apache2

4. Yapılandırma değişiklikleri yapıldığında bağlantıları kesmeden yeniden yüklemek için:


sudo systemctl reload apache2

5. Sanal Host Oluşturma (Önerilen)**

1. Tek bir sunucuda birden fazla web sitesi barındırmak için Sanal Host (Virtual Host) kullanmalıyız.

5.1 Dizin Yapısı Oluşturma***

1. Sitemiz için web kök dizinini oluşturun:


sudo mkdir -p /var/www/rabisu.cloud

2. Dizin sahipliğini mevcut kullanıcınıza atayın:


sudo chown -R $USER:$USER /var/www/rabisu.cloud

3. İzinlerin doğru olduğundan emin olmak için:


sudo chmod -R 755 /var/www/rabisu.cloud

4. Test Sayfası Oluşturma

1. Yeni dizinde bir örnek index.html dosyası oluşturun:


nano /var/www/rabisu.cloud/index.html

2. HTML içeriğini ekleyin:


<html>
<head>
<title>Rabisu Bulut'a Hos Geldiniz!</title>
</head>
<body>
<h1>Basarili! rabisu.cloud Sanal Host'u calisiyor!</h1>
</body>
</html>

5. Sanal Host Dosyasını Yapılandırma

1. Yeni bir Sanal Host dosyası oluşturun:


sudo nano /etc/apache2/sites-available/rabisu.cloud.conf

Yapılandırma bloğunu ekleyin:


<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName rabisu.cloud
ServerAlias www.rabisu.cloud
DocumentRoot /var/www/rabisu.cloud
ErrorLog $&#123;APACHE_LOG_DIR&#125;/error.log
CustomLog $&#123;APACHE_LOG_DIR&#125;/access.log combined
</VirtualHost>

6. Sanal Host'u Etkinleştirme ve Test Etme

2. Yeni Sanal Host dosyasını etkinleştirin:


sudo a2ensite rabisu.cloud.conf
  • Varsayılan siteyi devre dışı bırakın:

sudo a2dissite 000-default.conf
  • Yapılandırma hatası olmadığından emin olun:

sudo apache2ctl configtest
  • Apache'yi yeniden başlatın:

sudo systemctl restart apache2

7. Önemli Apache Dosya ve Dizinleri

7.1 Apache yönetimi için bilmeniz gereken temel konumlar:

1. İçerik Dizinleri:

  • /var/www/html: Varsayılan web içeriği.

2. Sunucu Yapılandırması:

  • /etc/apache2: Ana Apache yapılandırma dizini.

  • /etc/apache2/apache2.conf: Ana global yapılandırma dosyası.

  • /etc/apache2/sites-available/: Site bazlı Sanal Host yapılandırmaları.

  • Sunucu Günlükleri (Loglar):

  • /var/log/apache2/access.log: Tüm erişim istekleri.

  • /var/log/apache2/error.log: Tüm hatalar.

❓ Sıkça Sorulan Sorular (SSS)

Aşağıdaki tablo, kullanıcıların en çok merak ettiği soruların net ve kısa yanıtlarını içerir.

| Fluent Bit neden Logstash yerine tercih ediliyor? | Çok daha hafif, düşük CPU/RAM tüketiyor. Küçük–orta ölçekli sunucular için ideal. | | Birden fazla sunucudan log gönderebilir miyim? | Evet. Her instance Fluent Bit aracılığıyla aynı OpenSearch kümesine log iletebilir. | | Index adlarını ayırmak zorunda mıyım? | Evet, access/error loglarını ayırmak analiz kolaylığı sağlar. | | Host yerine IP adresi yazabilir miyim? | TLS kullanıyorsanız host adı daha güvenlidir (sertifika eşleşmesi). | | Nginx log formatını değiştirmem gerekir mi? | Hayır. Fluent Bit nginx parser’ını otomatik destekler. | | Loglar neden görünmüyor? | Genelde Match filtresi hatalıdır veya indeks adı yanlış girilmiştir. | | 25060 portu neden önemli? | OpenSearch yönetilen servislerde varsayılan TLS portudur. Firewall’da açık olmalıdır. | | Suppress_Type_Name On ne işe yarıyor? | OpenSearch 7+ sürümlerinde deprecated olan _type alanını devre dışı bırakır. | | Loglar geç geliyor, neden? | Tail plugin dosya rotasyonundan etkilendiyse mem_buf_limit veya Skip_Long_Lines ayarları gerekebilir. | | Fluent Bit çok CPU kullanıyor, çözüm? | Refresh_Interval, Mem_Buf_Limit ve Buffer_Chunk_Size optimize edilmelidir. |

Sonuç

Apache web sunucusunu Debian 11'e başarıyla kurdunuz, güvenlik duvarını yapılandırdınız ve birden fazla site barındırmaya uygun bir Sanal Host oluşturdunuz. Artık web içeriklerinizi sunmaya hazırsınız.

Bir sonraki adım olarak, Debian 11'e PHP ve MariaDB (LAMP yığını) kurmayı düşünebilirsiniz.

Bu kurulu web sunucusunu Rabisu Bulut platformunda hemen test edebilirsiniz!

css