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:
CentOS/RHEL için:
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:
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
80
80
Apache’yi 8080 numaralı bağlantı noktasını dinleyecek şekilde yapılandırın:
- Apache yapılandırma dosyasını açın:
- Apache’nin dinlediği portu (genellikle) belirten satırı bulun ve şu şekilde değiştirin:
Listen 80
- Değişiklikleri kaydedin ve düzenleyiciden çıkın.
- Değişiklikleri uygulamak için Apache’yi yeniden başlatın:
Şimdi, Apache
8080
80
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
8080
Nginx Sanal Ana Bilgisayar Yapılandırması Oluşturun:
- Nginx’te yeni bir sanal konak yapılandırma dosyası açın veya oluşturun:
- Aşağıdaki yapılandırmayı dosyaya ekleyin:
Bu yapılandırmada:
- : Nginx gelen istekler için
listen 80
numaralı bağlantı noktasını dinler.80
- : Nginx’in hizmet vereceği alan adı veya IP adresi.
server_name
- : İstekleri
proxy_pass
numaralı bağlantı noktasını dinleyen Apache’ye yönlendirir.8080
- : İstemcinin orijinal IP’si ve protokolü dahil olmak üzere çeşitli başlıkları Apache’ye iletir.
proxy_set_header
- Statik içerik içinbloğu, Nginx’in görüntüler, CSS ve JavaScript gibi dosyaları doğrudan sunmasını sağlayarak Apache üzerindeki yükü azaltır.
konum
- Yapılandırma dosyasını kaydedin ve kapatın.
- Debian/Ubuntu kullanıyorsanız,‘a bir sembolik bağlantı oluşturarak siteyi etkinleştirin:
sites-enabled
- Nginx yapılandırmasını sözdizimi hataları için test edin:
- Yeni yapılandırmayı uygulamak için Nginx’i yeniden başlatın:
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.
- Etki Alanınızı veya IP Adresinizi Ziyaret Edin: Tarayıcınızı açın veadresine 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.
http://example.com
- 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:ve
/var/log/nginx/access.log
/var/log/nginx/error.log
- Apache günlükleri:ve
/var/log/apache2/access.log
/var/log/apache2/error.
(veya CentOS/RHEL içinlog
)/var/log/httpd/
- Nginx günlükleri:
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ı:
- Bir SSL Sertifikası edinin: Alan adınız için ücretsiz bir SSL sertifikası almak için Let’s Encrypt’i kullanabilirsiniz:
- Nginx Yapılandırmasını Değiştirin: Nginx yapılandırma dosyanızı HTTPS içinnumaralı bağlantı noktasını dinleyecek şekilde güncelleyin:
443
- 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:
- Nginx‘i yeniden başlatın: Değişiklikleri uygulamak için Nginx’i yeniden başlatın:
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.