Apache için Nginx Ters Proxy Nasıl Kurulur ⋆ ALexHost SRL

Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills
10.12.2024

Apache için Nginx Ters Proxy Nasıl Kurulur

Nginx ve Apache, her biri güçlü yönlere sahip olan dünyanın en popüler web sunucularından ikisidir. Apache esnekliği ve sağlam modül sistemi ile bilinirken, Nginx özellikle statik içerik sunumu için yüksek performansı ve düşük kaynak tüketimi ile tercih edilir. Birçok senaryoda, Nginx’i Apache’nin önünde bir ters proxy olarak kullanarak ikisini birleştirmek faydalıdır. Bu kurulum, Nginx’in gelen istekleri ele almasını ve statik dosyaları sunmasını sağlarken, Apache’nin PHP komut dosyaları veya veritabanı odaklı uygulamalar gibi dinamik içeriği ele almasını sağlar.

Bu makalede, Nginx’i Apache için bir ters proxy olarak kurma sürecinde size yol göstererek sorunsuz ve verimli bir web sunucusu yapılandırması sağlayacağız.

Ters Proxy nedir?

Ters proxy, bir veya daha fazla arka uç sunucusunun önünde yer alan ve istemci isteklerini uygun sunucuya ileten bir sunucudur. Bu durumda, Nginx bir ters vekil olarak hareket edecek ve istekleri dinamik içerik sunacak olan Apache’ye iletecektir.

Nginx’i ters proxy olarak kullanmak çeşitli avantajlar sunar:

  • Geliştirilmiş Performans: Nginx, statik dosyaları (ör. resimler, CSS, JavaScript) hızlı bir şekilde sunarak Apache üzerindeki yükü azaltır.
  • Yük Dengeleme: Nginx, trafiği birden fazla arka uç sunucusu arasında dağıtarak kullanılabilirliği ve güvenilirliği artırabilir.
  • SSL Sonlandırma: Nginx, hesaplama yükünü Apache’den alarak SSL şifrelemesini gerçekleştirebilir.
  • Güvenlik: Nginx, istek filtreleme ve hız sınırlama gibi ek güvenlik özellikleri sağlayabilir.

Adım 1: Nginx ve Apache’yi Kurun

Nginx’i ters proxy olarak yapılandırmadan önce, sunucunuzda hem Nginx’in hem de Apache’nin kurulu olduğundan emin olun. Linux dağıtımınıza bağlı olarak paket yöneticinizi kullanarak bunları yükleyebilirsiniz.

Debian/Ubuntu için:
sudo apt güncellemesi
sudo apt install nginx apache2
CentOS/RHEL için:
sudo yum install epel-release
sudo yum install nginx httpd

Hem Nginx hem de Apache yüklendikten sonra, açılışta çalıştıklarından emin olmak için her iki hizmeti de başlatın ve etkinleştirin:

sudo systemctl start nginx
sudo systemctl start apache2 # CentOS için 'apache2' yerine 'httpd' kullanın
sudo systemctl enable nginx
sudo systemctl enable apache2

Adım 2: Apache’yi Yapılandırma

Apache, PHP betikleri gibi dinamik istekleri işleyen arka uç sunucusu olarak hareket edecektir. Apache’nin belirli bir bağlantı noktasını, genellikle

8080
bağlantı noktasını (varsayılan
80
yerine) dinleyecek şekilde ayarlandığından emin olun, böylece Nginx
80
bağlantı noktasını dinleyebilir.

Apache’yi 8080 numaralı bağlantı noktasını dinleyecek şekilde yapılandırın:
  1. Apache yapılandırma dosyasını açın:
    sudo nano /etc/apache2/ports.conf # Debian/Ubuntu için
    sudo nano /etc/httpd/conf/httpd.conf # CentOS/RHEL için
  2. Apache’nin dinlediği portu (genellikle
    Listen 80
    ) belirten satırı bulun ve şu şekilde değiştirin:
    Dinle 8080
  3. Değişiklikleri kaydedin ve düzenleyiciden çıkın.
  4. Değişiklikleri uygulamak için Apache’yi yeniden başlatın:
    sudo systemctl restart apache2 # Debian/Ubuntu için
    sudo systemctl restart httpd # CentOS/RHEL için

Şimdi, Apache

8080
numaralı bağlantı noktasını dinleyecek şekilde yapılandırılmıştır, bu da Nginx’in
80
numaralı bağlantı noktasını (varsayılan HTTP bağlantı noktası) dinlemesine ve istekleri Apache’ye iletmesine olanak tanıyacaktır.

Adım 3: Nginx’i Ters Proxy Olarak Yapılandırma

Daha sonra, Nginx’i istekleri Apache’ye yönlendiren bir ters proxy olarak hareket edecek şekilde yapılandırmamız gerekiyor. Nginx’te

80
numaralı bağlantı noktasını dinleyen ve istekleri
8080
numaralı bağlantı noktasındaki Apache’ye ileten bir sanal konak oluşturacağız.

Nginx Sanal Ana Bilgisayar Yapılandırması Oluşturun:
  1. Nginx’te yeni bir sanal konak yapılandırma dosyası açın veya oluşturun:
    sudo nano /etc/nginx/sites-available/example.com # Debian/Ubuntu için
    sudo nano /etc/nginx/conf.d/example.com.conf # CentOS/RHEL için
  2. Aşağıdaki yapılandırmayı dosyaya ekleyin:
    sunucu {
    listen 80;
    server_name example.com www.example.com; # Alan adınız veya sunucunuz ile değiştirin IPlocation
    / {
    proxy_pass http://127.0.0.1:8080; # İstekleri Apache’ye yönlendir
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    }# Daha iyi performans için statik içeriği doğrudan Nginx üzerinden sunun
    konum ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    365d sona erer;
    root /var/www/html; # Statik dosyalarınızın yolu
    }
    }

Bu yapılandırmada:

  • listen 80
    : Nginx gelen istekler için
    80
    numaralı bağlantı noktasını dinler.
  • server_name
    : Nginx’in hizmet vereceği alan adı veya IP adresi.
  • proxy_pass
    : İstekleri
    8080
    numaralı bağlantı noktasını dinleyen Apache’ye yönlendirir.
  • proxy_set_header
    : İstemcinin orijinal IP’si ve protokolü dahil olmak üzere çeşitli başlıkları Apache’ye iletir.
  • Statik içerik için
    konum
    bloğu, Nginx’in görüntüler, CSS ve JavaScript gibi dosyaları doğrudan sunmasını sağlayarak Apache üzerindeki yükü azaltır.
  1. Yapılandırma dosyasını kaydedin ve kapatın.
  2. Debian/Ubuntu kullanıyorsanız,
    sites-enabled
    ‘a bir sembolik bağlantı oluşturarak siteyi etkinleştirin:
    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  3. Nginx yapılandırmasını sözdizimi hataları için test edin:
    sudo nginx -t
  4. Yeni yapılandırmayı uygulamak için Nginx’i yeniden başlatın:
    sudo systemctl nginx'i yeniden başlat

Adım 4: Ters Proxy Kurulumunun Test Edilmesi

Nginx ve Apache yapılandırıldığına göre, her şeyin doğru çalıştığından emin olmak için ters proxy kurulumunu test etme zamanı geldi.

  1. Etki Alanınızı veya IP Adresinizi Ziyaret Edin: Tarayıcınızı açın ve
    http://example.com
    adresine gidin (gerçek alan adınız veya sunucu IP’niz ile değiştirin). Her şey doğru ayarlanmışsa, içeriğin Apache tarafından sunulduğunu ancak Nginx üzerinden yönlendirildiğini görmelisiniz.
  2. Nginx ve Apache Günlüklerini kontrol edin: Herhangi bir sorun varsa, sorunu gidermek için Nginx ve Apache günlüklerini kontrol edin:
    • Nginx günlükleri:
      /var/log/nginx/access.log
      ve
      /var/log/nginx/error.log
    • Apache günlükleri:
      /var/log/apache2/access.log
      ve
      /var/log/apache2/error.
      log
      (veya CentOS/RHEL için
      /var/log/httpd/
      )

Adım 5: (İsteğe Bağlı) HTTPS için SSL’yi Yapılandırma

Web sitenizi HTTPS ile güvence altına almak istiyorsanız, Nginx SSL sonlandırma işlemini gerçekleştirebilir. Bu, Nginx’in SSL sertifikalarını ve şifrelemeyi yöneteceği, Apache’nin ise yalnızca şifresi çözülmüş HTTP trafiğini işleyeceği anlamına gelir.

SSL’i Etkinleştirme Adımları:
  1. Bir SSL Sertifikası edinin: Alan adınız için ücretsiz bir SSL sertifikası almak için Let’s Encrypt’i kullanabilirsiniz:
    sudo apt install certbot python3-certbot-nginx # Debian/Ubuntu için
    sudo yum install certbot python3-certbot-nginx # CentOS/RHELsudo cert
    bot –nginx -d example.com -d www.example.com için
  2. Nginx Yapılandırmasını Değiştirin: Nginx yapılandırma dosyanızı HTTPS için
    443
    numaralı bağlantı noktasını dinleyecek şekilde güncelleyin:
    nginx
    sunucu {
    dinle 443 ssl;
    server_name example.com www.example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    }location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    365d sona eriyor;
    root /var/www/html;
    }
    }
  3. HTTP’yi HTTPS‘ye Yönlendirin: Tüm HTTP isteklerinin HTTPS’ye yönlendirilmesini sağlamak için yapılandırmanıza bir yeniden yönlendirme bloğu ekleyin:
    sunucu {
    dinle 80;
    server_name example.com www.example.com;
    return 301 https://$server_name$request_uri;
    }
  4. Nginx‘i yeniden başlatın: Değişiklikleri uygulamak için Nginx’i yeniden başlatın:
    sudo systemctl nginx'i yeniden başlat

Sonuç

Nginx’i Apache için ters proxy olarak kullanmak, her iki web sunucusunun güçlü yönlerini birleştiren güçlü bir kurulumdur. Nginx statik içeriği ve gelen istekleri verimli bir şekilde yönetirken, Apache dinamik içeriği ve arka uç işlemeyi yönetir. Bu hibrit yaklaşım, web sunucusu altyapınızın performansını, güvenliğini ve ölçeklenebilirliğini büyük ölçüde artırabilir.

Bu kılavuzda özetlenen adımları izleyerek, Nginx’i Apache’nin önünde bir ters proxy olarak kurabilir ve her iki dünyanın da en iyi avantajlarından yararlanabilirsiniz. Ek olarak, Nginx ile SSL uygulamak web sitenizin güvenli olmasını sağlayarak siz ve kullanıcılarınız için gönül rahatlığı sağlar.

Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills