Web sunucularını yönetmek, yönlendirmek ve güvenliğini sağlamak her geçen gün daha kritik hale geliyor. Nginx Proxy Manager, bu işlemleri basitleştirmek için güçlü ve kullanıcı dostu bir arayüz sunuyor. Bu yazıda, Nginx’in ne olduğunu, Nginx Proxy Manager’ın nasıl kurulacağını, iç bileşenlerini ve yük dengeleme (load balancing) amacıyla nasıl yapılandırılabileceğini detaylıca ele alıyoruz.
Nginx Nedir?
Nginx (engine-x olarak telaffuz edilir), yüksek performanslı, açık kaynak kodlu bir HTTP ve ters proxy (reverse proxy) sunucusudur. Ayrıca IMAP/POP3 proxy sunucusu, yük dengeleyici ve HTTP cache sunucusu olarak da işlev görebilir. İlk olarak 2004 yılında piyasaya sürülen Nginx, düşük bellek tüketimi ve yüksek eşzamanlılık performansıyla ön plana çıkar.
- Statik içerik sunumu: HTML, CSS, JS gibi dosyaları hızlı şekilde servis eder.
- Reverse Proxy: Trafiği arka uç (backend) sunuculara yönlendirir.
- Load Balancer: Birden fazla sunucuya yük dağıtarak sistemin performans ve sürekliliğini artırır.
- SSL/TLS Termination: HTTPS bağlantılarını sonlandırır ve iç ağı HTTP üzerinden devam ettirebilir.
Nginx Proxy Manager Nedir?
Nginx Proxy Manager (NPM), Nginx’i daha kolay yönetebilmek için geliştirilmiş bir web arayüzüdür. Gelişmiş Linux komut bilgisi olmadan Nginx’in ters proxy özelliklerini kullanmanızı sağlar. HTTPS yapılandırmaları, domain yönlendirmeleri, erişim kontrolü ve daha fazlasını dakikalar içinde yapabilirsiniz.
Nginx Proxy Manager’ın Temel Özellikleri
- Web arayüzü üzerinden kolay konfigürasyon
- Let’s Encrypt desteği ile otomatik SSL sertifika kurulumu
- Reverse proxy (ters proxy) desteği
- Gelişmiş erişim kontrol listeleri
- Docker ile hızlı kurulum
- Çoklu domain ve subdomain yönetimi
- HTTP basic auth desteği
Nginx Proxy Manager Kurulumu (Docker ile)
Adım 1: Docker ve Docker-Compose Kurulumu
İlk olarak Docker’ın sisteminizde kurulu olması gerekir. Ubuntu kullandığınızı varsayarsak:
sudo apt update
sudo apt install docker docker-compose -y
Adım 2: docker-compose.yml Dosyasını Oluşturun
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Adım 3: Docker Compose ile Başlatın
docker-compose up -d
İlk kurulumda http://sunucu_ip:81 üzerinden arayüze erişebilirsiniz.
Varsayılan Giriş Bilgileri
- E-posta: [email protected]
- Şifre: changeme
İlk girişte şifrenizi ve mail adresinizi değiştirmeniz istenir.
Nginx Proxy Manager Bileşenleri
1. Web UI
Modern, kullanıcı dostu arayüz ile domain, proxy host, SSL ve erişim listelerini görsel olarak yapılandırabilirsiniz.
2. Proxy Hosts
Buradan domain bazlı yönlendirmeler yapabilirsiniz. Örneğin blog.siteadi.com adresini arka plandaki bir WordPress servisine yönlendirebilirsiniz.
3. Access Lists
IP filtreleme, kullanıcı adı ve şifre ile giriş koruması gibi güvenlik kuralları tanımlayabilirsiniz.
4. SSL Sertifikaları
Let’s Encrypt ile tek tıkla ücretsiz SSL kurabilirsiniz. Ayrıca özel SSL sertifikaları da yüklenebilir.
5. Redirection Hosts
HTTP/HTTPS yönlendirmeleri için kullanılır. Örneğin www.domain.com → domain.com gibi.
6. Stream Hosts (TCP/UDP)
HTTPS dışı TCP/UDP uygulamaları için yönlendirme yapmanızı sağlar. Örneğin bir Minecraft sunucusu gibi.
Nginx Proxy Manager ile Load Balancing (Yük Dengeleme)
Yük Dengeleme Nedir?
Yük dengeleme, gelen trafiğin birden fazla sunucuya dağıtılmasıdır. Bu, yüksek erişilebilirlik ve performans sağlar.
Docker Olmadan Geleneksel Nginx ile Load Balancer
upstream my_backend {
server 192.168.1.101:8088;
server 192.168.1.101:8089;
server 192.168.1.101:8090;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://my_backend;
}
}
Nginx Proxy Manager ile Load Balancer Kullanımı
Nginx Proxy Manager arayüzünde aşağıdaki şekilde yapılır:
- Proxy Hosts → “Add Proxy Host” butonuna tıklayın.
- Domain Names: Alan adınızı girin.
- Forward Hostname / IP: İlk backend sunucu IP’sini girin.
- Forward Port: Örneğin 8088 girin.
- “Advanced” sekmesine geçin ve şu ek ayarları yapın:
location / {
proxy_pass http://backend_pool;
}
upstream backend_pool {
server 192.168.1.101:8088;
server 192.168.1.101:8089;
server 192.168.1.101:8090;
}
Bu tanım, gelen istekleri üç sunucuya yük dengeleme yaparak iletecektir. Round Robin (sıralı dağıtım) varsayılan moddur. Diğer modlar: least_conn, ip_hash gibi.
Güvenlik Ayarları: “Block Common Exploits” Ne İşe Yarar?
“Block Common Exploits” kutucuğu, yaygın güvenlik açıklarını filtrelemek için Nginx tarafında belirli kuralları aktif eder. Örnek olarak:
- Path traversal saldırılarını engeller (örneğin
../../etc/passwdgibi). - Script injection filtreleri uygular.
- Bozuk veya zararlı User-Agent başlıklarını reddeder.
Ne Zaman Nginx Proxy Manager Kullanmalısınız?
Aşağıdaki durumlar için ideal bir çözümdür:
- Docker tabanlı servisleriniz varsa ve domain yönlendirmelerini kolay yapmak istiyorsanız
- Geliştirici olmayan ekip üyeleriniz varsa (örneğin frontend geliştiriciler)
- HTTPS sertifika yönetimini otomatize etmek istiyorsanız
- Birden fazla servis ve uygulama yönetiyorsanız
- Yük dengeleme ile ölçeklenebilirlik sağlamak istiyorsanız
Sonuç: Nginx Proxy Manager ile Modern Proxy Yönetimi
Nginx Proxy Manager, Nginx’in tüm gücünü sade ve kullanıcı dostu bir arayüzle sunarak özellikle küçük ve orta ölçekli projeler için mükemmel bir çözümdür. SSL sertifikaları, ters proxy ayarları, IP kısıtlamaları ve hatta yük dengeleme gibi gelişmiş yapılandırmaları birkaç tıklamayla yapabilirsiniz.
Linuxuzmani.com olarak Nginx, Proxy, Yük Dengeleme ve Güvenlik konularında profesyonel destek sunuyoruz. Projelerinizi güvenle yayına almak için bize ulaşın!
Sıkça Sorulan Sorular (SSS)
Soru: Nginx Proxy Manager sadece Docker ile mi çalışır?
Cevap: Genellikle Docker ile kullanılır çünkü kurulum ve yönetimi çok kolaylaştırır. Ancak ileri seviye kullanıcılar için manuel kurulum da mümkündür.
Soru: Load balancing için ücretli eklenti gerekiyor mu?
Cevap: Hayır, Nginx’in temel özellikleri arasında yük dengeleme zaten vardır. NPM sadece bunları GUI ile yönetmenizi sağlar.
Soru: Trafik HTTPS değilse de yönlendirme yapılabilir mi?
Cevap: Elbette. Hem HTTP hem HTTPS üzerinden yönlendirme yapılabilir. Ancak HTTPS güvenlik için önerilir.
