Nginx veya Apache ile Linux Web Sunucusu Kurma

  • Konbuyu başlatan Konbuyu başlatan Hüseyin
  • Başlangıç tarihi Başlangıç tarihi

Hüseyin

Üye
Top Poster Of Month
Katılım
21 Ocak 2024
Mesajlar
164
Tepkime puanı
36
Puanları
28
Apache or Nginx.jpg


Web sitelerini ve web uygulamalarını barındırmak söz konusu olduğunda, Apache ve Nginx dünyada en yaygın kullanılan web sunucusu platformlarından ikisidir. Her ikisi de güçlü, esnek ve açık kaynaklıdır, bu da onları web içeriği sunmak için tercih edilen seçenek haline getirir. İster basit bir web sitesi ister karmaşık bir web uygulaması hazırlıyor olun, Linux'ta Apache ya da Nginx 'i nasıl yapılandıracağınızı bilmek önemli bir yetkinliktir.

Web Sunucusu Nedir?​

Web sunucusu, web içeriğini (HTML dosyaları, resimler ve JavaScript gibi) HTTP veya HTTPS protokolü üzerinden istemcilere (genellikle web tarayıcıları) sunan bir yazılımdır. Web sunucuları tarayıcılardan gelen istekleri işler ve istenen içeriği geri göndererek kullanıcıların web sitelerine ve web uygulamalarına erişmesini sağlar.

  • Apache: En eski ve en yaygın kullanılan web sunucularından biri olan Apache, kapsamlı özellikler ve esneklik sunar. Karmaşık yapılandırmalar, modüller ve özelleştirmeler için mükemmeldir.
  • Nginx: Yüksek performansı, düşük kaynak kullanımı ve çok sayıda eşzamanlı bağlantıyı idare etme yeteneği ile bilinen Nginx, yüksek trafikli sitelerin idaresi için sıklıkla tercih edilir.
Her iki sunucu da sanal barındırma, SSL şifreleme ve reverse proxying gibi temel özellikleri destekler.

1. Linux'ta Apache veya Nginx Kurulumu​

Gereksinimlerinize bağlı olarak Apache ya da Nginx kurabilirsiniz. Her ikisi de çoğu Linux dağıtımının varsayılan depolarında mevcuttur.

Apache'yi Yükleme​

Debian/Ubuntu üzerinde Apache yüklemek için :
sudo apt update

sudo apt install apache2


CentOS/RHEL üzerinde kullanın:

sudo yum install httpd

Nginx Kurulumu​

Debian/Ubuntu üzerinde Nginx yüklemek için :
sudo apt update
sudo apt install nginx

CentOS/RHEL üzerinde kullanın:

sudo yum install nginx

Kurulduktan sonra web sunucusu yapılandırılmaya ve web sayfalarını sunmaya hazır olacaktır.

2. Web Sunucusunun Başlatılması ve Etkinleştirilmesi​

Apache veya Nginx'i kurduktan sonra, web sunucusunu başlatmanız ve sistem açılışında otomatik olarak çalışmasını sağlamanız gerekir.

Apache'yi Başlatma​

Debian/Ubuntu üzerinde Apache 'yi başlatmak için :

sudo systemctl start apache2

CentOS/RHEL üzerinde :

sudo systemctl start httpd

Apache'nin açılışta başlamasını etkinleştirin:
sudo systemctl enable apache2 # Debian/Ubuntu

sudo systemctl enable httpd # CentOS/RHEL

Nginx'i Başlatma​

Nginx 'i herhangi bir sistemde başlatmak için:

sudo systemctl start nginx

Nginx'in açılışta başlamasını etkinleştirin:

sudo systemctl enable nginx

3. Temel HTML Sayfası Sunma​

Web sunucusu çalıştıktan sonra, sunucunun doğru çalıştığını doğrulamak için temel bir HTML sayfası sunmanın zamanı gelmiştir.

Apache Varsayılan Web Sayfası Konumu​

Apache için öntanımlı web sayfası /var/www/html dizininde saklanır. Varsayılan index.html dosyasını kendi içeriğinizle değiştirebilirsiniz.

Apache için temel bir HTML sayfası oluşturmak için:

echo “<h1>Apache Web Sunucusuna Hoş Geldiniz. Salonumuz Klimalıdır</h1>” | sudo tee /var/www/html/index.html

Ardından, değişiklikleri uygulamak için Apache'yi yeniden başlatın:

sudo systemctl restart apache2

Nginx Varsayılan Web Sayfası Konumu​

Nginx için varsayılan web sayfası /usr/share/nginx/html dizininde bulunur.

Nginx için temel bir HTML sayfası oluşturmak için:

echo “<h1>Apache Web Sunucusuna Hoş Geldiniz. Salonumuz Klimalıdır</h1>” | sudo tee /usr/share/nginx/html/index.html

Değişiklikleri uygulamak için Nginx'i yeniden başlatın:

sudo systemctl restart nginx

Şimdi, sunucunuzun IP adresini bir tarayıcıda ziyaret edin (örneğin, http://your_server_ip) ve özel mesajınızı görmelisiniz.

4. Sanal Ana Bilgisayarları (Apache) veya Sunucu Bloklarını (Nginx) Yapılandırma​

Sanal barındırma (Apache) ve sunucu blokları (Nginx), her biri kendi alan adına sahip birden fazla web sitesini tek bir sunucuda barındırmanıza olanak tanır.

Apache: Sanal Sunucuları Kurma​

Apache'de bir sanal ana bilgisayar yapılandırmak için /etc/apache2/sites-available/ içinde siteniz için yeni bir yapılandırma dosyası oluşturun.

  1. Web sitenizin dosyaları için dizin oluşturun:
sudo mkdir -p /var/www/pwnlab.me/html

2. Uygun izinleri ayarlayın:

sudo chown -R $USER:$USER /var/www/pwnlab.me/html

3. Site için temel bir HTML dosyası oluşturun:

echo “<h1>Welcome to pwnlab.me</h1>” | sudo tee /var/www/pwnlab.me/html/index.html

4. Yeni bir sanal sunucu dosyası oluşturun:

sudo nano /etc/apache2/sites-available/pwnlab.me.conf

5. Aşağıdaki yapılandırmayı ekleyin:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName pwnlab.me
ServerAlias www.pwnlab.me
DocumentRoot /var/www/pwnlab.me/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

6. Yeni siteyi etkinleştirin ve Apache'yi yeniden başlatın:
sudo a2ensite pwnlab.me.conf

sudo systemctl restart apache2

Nginx: Sunucu Bloklarını Ayarlama​

Nginx'te sunucu blokları Apache sanal konaklarına benzer şekilde çalışır. etc/nginx/sites-available/ içinde yeni bir yapılandırma dosyası oluşturun.

  1. Siteniz için dizin oluşturun:
sudo mkdir -p /var/www/pwnlab.me/html

2. Doğru izinleri ayarlayın:

sudo chown -R $USER:$USER /var/www/pwnlab.me/html

3. Temel bir HTML dosyası oluşturun:

echo “<h1>Welcome to pwnlab.me</h1>” | sudo tee /var/www/pwnlab.me/html/index.html

4. Yeni bir sunucu blok dosyası oluşturun:

sudo nano /etc/nginx/sites-available/pwnlab.me

5. Aşağıdaki yapılandırmayı ekleyin:
server {
listen 80;
server_name pwnlab.me www.pwnlab.me;
root /var/www/pwnlab.me/html;
index index.html;

location / {
try_files $uri $uri/ =404;
}
}

6. Sembolik bir bağlantı oluşturarak siteyi etkinleştirin:

sudo ln -s /etc/nginx/sites-available/pwnlab.me /etc/nginx/sites-enabled/

7. Yapılandırmayı test edin ve Nginx'i yeniden başlatın:
sudo nginx -t

sudo systemctl restart nginx

Artık sitenizi görüntülemek için tarayıcınızda http:// pwnlab. me adresini ziyaret edebilirsiniz.

5. SSL ile Web Sunucunuzun Güvenliğini Sağlama​

Web sunucunuzu SSL/TLS ile güvence altına almak, kullanıcı verilerini korumak ve güvenli bağlantılar sağlamak için kritik öneme sahiptir. Ücretsiz bir SSL sertifika yetkilisi olan Let's Encrypt'i kullanarak HTTPS'yi etkinleştirebilirsiniz.

SSL Sertifikaları için Certbot'u yükleyin​

SSL sertifikalarını yönetmek için Certbot 'u yüklemek için:

  • Debian/Ubuntu (Apache):
sudo apt install certbot python3-certbot-apache
  • Debian/Ubuntu (Nginx):
sudo apt install certbot python3-certbot-nginx
  • CentOS/RHEL:
sudo yum install certbot python3-certbot-apache # Apache için

sudo yum install certbot python3-certbot-nginx # Nginx için

Bir SSL Sertifikası Alın​

Alan adınız için ücretsiz bir SSL sertifikası almak için:

Apache için :

sudo certbot --apache -d pwnlab.me -d www.pwnlab.me

Nginx için :

sudo certbot --nginx -d pwnlab.me -d www.pwnlab.me

Certbot, web sunucunuzu HTTPS kullanacak şekilde otomatik olarak yapılandıracaktır. Ayrıca sertifika yenilemelerini de gerçekleştirecektir.

SSL Yapılandırmasını Doğrulama​

Certbot SSL sertifikasını yükledikten sonra, tarayıcınızda https:// pwnlab. me adresini ziyaret edebilirsiniz. Bağlantı güvenli olmalı ve adres çubuğunda bir asma kilit sembolü ile gösterilmelidir.

6. Web Sunucusu Performansını Optimize Etme​

Hem Apache hem de Nginx yüksek trafik yüklerini kaldırabilir, ancak performansı optimize etmenin birkaç yolu vardır:

Apache'yi Optimize Etme​

  • Önbelleğe Almayı Etkinleştir: Sıkça istenen içeriği önbelleğe almak için Apache'nin mod_cache 'sini kullanın.
sudo a2enmod cache

sudo a2enmod cache_disk

sudo systemctl restart apache2
  • Sıkıştırma Kullan: İstemciye göndermeden önce içeriği sıkıştırmak için mod_deflate 'i etkinleştirin.
sudo a2enmod deflate

sudo systemctl restart apache2

Nginx'i Optimize Etme​

  • Gzip Sıkıştırmayı Etkinleştirin: Gzip sıkıştırmayı etkinleştirmek için aşağıdaki satırları Nginx yapılandırmasına ekleyin:
gzip on;
gzip_types text/css application/javascript text/html application/json;
  • Use FastCGI Caching: PHP veya diğer sunucu tarafı dilleri tarafından oluşturulan dinamik içeriği FastCGI önbellekleme kullanarak önbelleğe alın. Örnek FastCGI önbellek yapılandırması:
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=MYCACHE:10m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
 
Geri
Üst